Drag-n-Drop JTableHeader

时间:2012-09-19 06:10:54

标签: java swing jtable drag-and-drop jtableheader

我正在使用JTable + JScrollPane + DefaultTableModel

我需要在JTableHeader上实施Drag-n-Drop。我想将列标题拖到我的组件中,并根据拖动的列进行一些工作。

我在我的setTransferHandler()上尝试了JTableHeader,但拖延仍无效。

我从哪里开始?是否可以在JTableHeader上实施DnD并保存“移动列”功能(JTable中可用的“开箱即用”)?

1 个答案:

答案 0 :(得分:3)

已解决:问题已结束。我用

实现了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重新排列列。这对我来说已经足够了。