Java在Ubuntu中的拖放

时间:2013-01-07 22:30:02

标签: java swing ubuntu drag-and-drop jtable

我想将一个字符串从JTable的单元格拖到例如浏览器。

因此我写了类似的东西:

    table.setDragEnabled(true);
    table.setTransferHandler(new TransferHandler() {

        @Override
        protected Transferable createTransferable(JComponent c) {
            isDragged = true;
            return new StringSelection(exportString(c));
        }

        @Override
        public int getSourceActions(JComponent c) {
            return TransferHandler.COPY_OR_MOVE;
        }

        @Override
        protected void exportDone(JComponent c, Transferable t, int act) {
            isDragged = false;
        }

        protected String exportString(JComponent c) {
            // return some String
        }
    });

在Windows和Mac下运行良好,但在Linux(Ubuntu)上我遇到了一些麻烦:

第一个拖放工作正常,但第二个甚至不会开始!鼠标没有改变,也没有完成拖放。

如果你想要一个例子,你可以简单地运行本教程的jnlp:http://docs.oracle.com/javase/tutorial/uiswing/dnd/dropmodedemo.html并尝试进行两次拖放。

我该怎么做才能解决这个问题?此外,在Linux下,从不调用exportDone-Method!

顺便说一下:我用Java 6和7进行了测试,两者行为相同!

0 个答案:

没有答案