2

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

4

3 回答 3

4

请参阅Javadoc

公共无效 setRowSorter(RowSorter 排序器)

参数:sorter- RowSorter; null关闭排序

于 2012-06-14T16:46:40.437 回答
2

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

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

- JTable#setAutoCreateRowSorter(true);

- table.setRowSorter(sorter);

- custom Comparator added as MouseEvent to the JTableHeader

查看并阅读有关排序和过滤的 JTable 教程

于 2012-06-14T17:41:34.280 回答
0

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

  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                  
            }
        }
    });
于 2017-12-09T21:41:13.597 回答