我使用JTable + JScrollPane + DefaultTableModel。
我需要在JTableHeader上实现拖放。我想把一个列标题拖到我的组件上,然后根据拖拽的列做一些工作。
我已经在我的JTableHeader上尝试了setTransferHandler(),但拖动仍然不起作用。
我可以从哪里开始呢?有没有可能在JTableHeader上实现DnD并保存"move-columns“特性(在JTable中”开箱即用“)?
发布于 2012-09-19 16:32:39
已解决:问题已结束。我使用以下命令实现了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的同时重新排列列。这对我来说已经足够了。
https://stackoverflow.com/questions/12489395
复制相似问题