用鼠标移动画布

时间:2014-05-07 01:00:04

标签: java swt

我想通过拖放将我的按钮移动到我的Frame中的任何位置。我不能在SWT中这样做。有谁能够帮我 ?我已经尝试了很多次,但我找不到任何关于它的倾听者。

1 个答案:

答案 0 :(得分:0)

对于默认情况下不支持拖放的JComponents,或者您希望自定义拖放行为的JComponents,您需要为它们传递一个新的TransferHandler。创建TransferHandler的最简单方法是实例化一个并传递一个beans属性,或者在类中传递get / set方法的名称(即,text和icon是JButton的bean属性)。我们还需要一个MouseListener来导出拖动。

JButton button = new JButton("This is the text");
TransferHandler transfer = new TransferHandler("text");

//the JButton can now be dragged and the text will be dropped
button.setTransferHandler(transfer);

button.addMouseListener(new MouseAdapter(){
    public void mousePressed(MouseEvent e){
         JButton button = (JButton)e.getSource();
         TransferHandler handle = button.getTransferHandler();
         handle.exportAsDrag(button, e, TransferHandler.COPY);
            }
        });