拖动;从Java应用程序中删除JLabel图标

时间:2013-05-23 21:43:44

标签: java swing drag-and-drop

我有一个应用程序可以转换LaTeX公式并将其放入JLabel图标中。现在我想拖延将此图标放在应用程序外部,例如某个目录(即创建图像文件)或某些文本(邮件,文档等)

谷歌搜索它,我只找到方法将Icon拖动到我的应用程序的另一个组件或在我的应用程序之外拖动文本但是没有结合这些方法我得到了我的目标..

编辑 - 2013年5月25日

为了简单起见,假设我有一个文本标签,我想将Label的文本拖放到我的应用程序之外(我想如果我能做到这一点,那么使用Icon Label做同样的事情就不会那么困难了):

Jlabel label = new JLabel("Text");
label.setTransferHandler(new TextTransferHandler());

我接受了Guillaume Polet的建议,并写了以下课程:

public class TextTransferHandler extends TransferHandler {

    @Override
    public int getSourceActions(JComponent c) {
        return COPY;
    }

    @Override
    protected Transferable createTransferable(JComponent c) {
        JLabel label = (JLabel)c;
        return new StringSelection(label.getText());
    }

}

但是当我尝试拖动标签上的文字时,没有任何事情发生(在我的应用程序的另一个组件中或在应用程序之外)

0 个答案:

没有答案