拖放JLabel

时间:2012-11-30 18:51:31

标签: java swing drag-and-drop awt

我在JPanel中有一堆JLable,我在JPanel上使用FlowLayout。每个标签都是JPanel宽度的100%,因此当我向JPanel添加标签时,它们是垂直放置的。我希望能够做的是在列表中单击并向上或向下拖动JLabel。使用这段代码,我希望将“Here”打印到输出控制台,但事实并非如此。拖放需要做什么?

public class LayerItem extends JLabel{
    public LayerItem(){
        this.addMouseListener(new MouseAdapter(){
            @Override
            public void mouseDragged(MouseEvent evt){
                lblMouseDragged(evt);
            }
        });
    }

    public void lblMouseDragged(MouseEvent evt){
        System.out.println("Here");
    }
}

2 个答案:

答案 0 :(得分:3)

变化:

this.addMouseListener(new MouseAdapter(){

要:

this.addMouseMotionListener(new MouseAdapter(){

答案 1 :(得分:1)

类似于this的问题..顺便说一下,我认为您可以使用TransferHandler,例如this