Java 拖放JTableHeader
我使用的是Java 拖放JTableHeader,java,swing,jtable,drag-and-drop,jtableheader,Java,Swing,Jtable,Drag And Drop,Jtableheader,我使用的是JTable+JScrollPane+DefaultTableModel 我需要在JTableHeader上实现拖放。我想将列标题拖到我的组件中,并根据拖到的列执行一些工作 我已经在我的JTableHeader上尝试了setTransferHandler(),但拖动仍然不起作用 我从哪里开始?是否可以在JTableHeader上执行DnD并保存“移动列”功能(在JTable中提供“开箱即用”功能?已解决:问题已结束。我已经使用 DragSource.getDefaultDragSour
JTable
+JScrollPane
+DefaultTableModel
我需要在JTableHeader
上实现拖放。我想将列标题拖到我的组件中,并根据拖到的列执行一些工作
我已经在我的JTableHeader上尝试了setTransferHandler()
,但拖动仍然不起作用
我从哪里开始?是否可以在JTableHeader
上执行DnD并保存“移动列”功能(在JTable
中提供“开箱即用”功能?已解决:问题已结束。我已经使用
DragSource.getDefaultDragSource().createDefaultDragGestureRecognizer(tableHeader, ...)
值得一提的是:dnd打破了默认的“重新排列列”行为。我的变通方法是
public void dragGestureRecognized(DragGestureEvent dge) {
if (dge.getDragAction() == DnDConstants.ACTION_COPY)
return;
try {
dge.startDrag(null, new MyTransferable());
} catch (InvalidDnDOperationException e2) {
System.out.println(e2);
}
}
这样我可以在按住ctrl键的情况下重新排列列。这对我来说已经足够了。指定“不工作”:您不能启动拖动(甚至不能移动列),您可以移动列但不能在组件上拖放,您可以拖放但拖放没有达到预期效果,…我可以重新排列列,但无法启动拖动(光标不改变,我的组件的删除方法不会对鼠标按钮释放),你可以考虑把你的更新作为你的问题的答案(并且接受它),更容易为未来的用户找到“解决”的信号:-谢谢。可惜我只能在两天后接受我自己的答案。我稍后再查。