transferhandler忽略拖动事件

时间:2013-04-25 12:30:29

标签: java swing drag-and-drop jtable

我在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
}

1 个答案:

答案 0 :(得分:0)

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

    @Override
    public int getSourceActions(JComponent comp) {
        return MOVE;
    }