1

我想将字符串从 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 进行了测试,两者的行为都是一样的!

4

0 回答 0