0

我在 JTable(嵌入在 JPanel + JScrollPane 中)上设置了一个传输处理程序。将表格中的元素拖到其他地方(创建可转移的......)可以工作。将元素拖放到表格中不起作用,任何拖动事件都会被忽略。问题可能是事件消费者(消耗拖动事件),但这是我唯一的想法。

final JTable tbl = new MyJTable();
tbl.setDragEnabled(true);
tbl.setTransferHandler(new TransferHandler() {


@Override
protected Transferable createTransferable(JComponent comp) {
    // .... works
}

@Override
public boolean canImport(TransferSupport support) {
    // ... never called

}

@Override
public boolean importData(TransferSupport support) {
  // ... never called
}
4

1 回答 1

0

我记得在使用 JTree 时遇到了同样的问题,并且解决方案getSourceActions在我的实现中实现TransferHandler并在其中定义了传输操作。例如:

    @Override
    public int getSourceActions(JComponent comp) {
        return MOVE;
    }
于 2013-09-17T14:42:50.047 回答