2013-04-25 61 views
0

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

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 
} 
+0

应该工作,可能出错了,你没有显示;-) – kleopatra 2013-09-17 15:16:41

回答

0

我记得有一个JTree的工作同样的问题和解决方案正在实施中我TransferHandlergetSourceActions并定义里面的搬运动作。例如:

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

没有,只dropMode用于决定有关的拖放位置的视觉反馈,而不是拖码/降功能本身 – kleopatra 2013-09-17 15:15:29

+0

你说得对,我正在删除这个可怕的答案。感谢您的评论 – maureyes 2013-09-17 15:24:12

+0

我记得我有类似的问题,但以前的答案不是解决方案,再次感谢指出 – maureyes 2013-09-17 16:59:15