2

我在 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");
    }
}
4

2 回答 2

3

改变:

this.addMouseListener(new MouseAdapter(){

到:

this.addMouseMotionListener(new MouseAdapter(){
于 2012-11-30T19:00:07.593 回答
1

这样的类似问题..顺便说一句,我认为你可以使用TransferHandler,像这样

于 2012-11-30T19:03:59.993 回答