我正在使用JTable
++ JScrollPane
。DefaultTableModel
我需要在JTableHeader
. 我想将列标题拖动到我的组件并根据拖动的列做一些工作。
我已经尝试过setTransferHandler()
,JTableHeader
但拖动仍然无法正常工作。
我可以从哪里开始?是否可以实现 DnDJTableHeader
并保存“移动列”功能(可在 'out-of-the-box' 中使用JTable
)?
我正在使用JTable
++ JScrollPane
。DefaultTableModel
我需要在JTableHeader
. 我想将列标题拖动到我的组件并根据拖动的列做一些工作。
我已经尝试过setTransferHandler()
,JTableHeader
但拖动仍然无法正常工作。
我可以从哪里开始?是否可以实现 DnDJTableHeader
并保存“移动列”功能(可在 'out-of-the-box' 中使用JTable
)?
已解决:问题已结束。我已经使用 dnd 实现了
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-pressed 重新排列列。这对我来说已经足够了。