繁体   English   中英

JTable阻止所有排序

[英]JTable prevent all sorting

是否可以防止在JTable上将所有内容排序在一起? 基本上,我不希望用户单击表头并且内容处于静态顺序时不会发生任何事情。

参见Javadoc

公共无效setRowSorter(RowSorter分类器)

参数: sorter - RowSorter ; null打开排序

基本上,我不希望用户单击表头并且内容处于静态顺序时不会发生任何事情。

基本上JTable没有任何Sorter,您必须删除代码行

- JTable#setAutoCreateRowSorter(true);

- table.setRowSorter(sorter);

- custom Comparator added as MouseEvent to the JTableHeader

查看并阅读有关排序和筛选的JTable教程

当用户单击任何表标题列时,禁用排序的最佳和简单方法:

  1. 首先,您需要在表标题上创建鼠标单击侦听器
  2. 在它的内部,仅使鼠标左键可用(带有SwingUtilities)
  3. 插入这行代码

    yourTableVariable.setRowSorter(NULL);

实际示例:

yourTableVariable.getTableHeader().addMouseListener(new MouseAdapter() //here you make the click avaible ONLY on Table Header 
    {
        @Override
        public void mouseClicked(MouseEvent arg0) 
        {
            if (SwingUtilities.isLeftMouseButton(arg0)) //here you select the mouse left click action 
            {
                yourTableVariable.setRowSorter(null); //here is disableing the sorting                  
            }
        }
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM