首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拖放JTableHeader

拖放JTableHeader
EN

Stack Overflow用户
提问于 2012-09-19 14:10:54
回答 1查看 513关注 0票数 4

我使用JTable + JScrollPane + DefaultTableModel

我需要在JTableHeader上实现拖放。我想把一个列标题拖到我的组件上,然后根据拖拽的列做一些工作。

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

我可以从哪里开始呢?有没有可能在JTableHeader上实现DnD并保存"move-columns“特性(在JTable中”开箱即用“)?

EN

回答 1

Stack Overflow用户

发布于 2012-09-19 16:32:39

已解决:问题已结束。我使用以下命令实现了dnd

代码语言:javascript
复制
DragSource.getDefaultDragSource().createDefaultDragGestureRecognizer(tableHeader, ...)  

值得一提的是: dnd破坏了默认的“重排列”行为。我的变通方法是

代码语言:javascript
复制
    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的同时重新排列列。这对我来说已经足够了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12489395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档