拖动时更改组件背景

Changing component background while dragging over it

我有一个 JPanel 配置为拖放区,允许用户将文件拖放到其中以便进行分析。现在我想在将文件拖到面板上时更改该面板的背景颜色。

如何做到这一点?

一种方法是添加 DropTarget。像这样:

yourJpanel.setDropTarget(new DropTarget() {

    @Override
    public synchronized void drop(DropTargetDropEvent dtde)
    {
        this.changeToNormal();
        //handle the drop ....
    }

    @Override
    public synchronized void dragEnter(DropTargetDragEvent dtde){

        //Change JPANEL background...
        yourJpanel.setBackground(Color.RED);
    }

    @Override
        public synchronized void dragExit(DropTargetEvent dtde) {
        this.changeToNormal();
    }

    private void changeToNormal() {   
        //Set background to normal...
        yourJpanel.setBackground(Color.WHITE);
    }
});