Drag-n-Drop JTableHeader



我正在使用JTable + JScrollPane + DefaultTableModel .

我需要在JTableHeader上实现拖放。我想将列标题拖到我的组件上,并根据拖动的列执行一些工作。

我已经尝试setTransferHandler()我的JTableHeader但拖动仍然不起作用。

我可以从哪里开始?是否可以在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 重新排列列。这对我来说已经足够了。

相关内容

  • 没有找到相关文章

最新更新