Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 动态启用和禁用JTable的排序_Java_Swing_Sorting_Jtable_Rowsorter - Fatal编程技术网

Java 动态启用和禁用JTable的排序

Java 动态启用和禁用JTable的排序,java,swing,sorting,jtable,rowsorter,Java,Swing,Sorting,Jtable,Rowsorter,我是JavaSwing新手,现在正在使用JTable 实际上,我很难对这个组件进行排序 我想以编程方式启用和禁用此功能 我使用JTable.setAutoCreateSorter(true)对其进行初始化,我将其更改为false,不发生任何事情 另外,我使用了JTable.setRowSorter(null),它可以工作,但我不知道如何再次启用它 对不起,我的英语很差 检查源代码: public void setAutoCreateRowSorter(boolean autoCreateRowS

我是JavaSwing新手,现在正在使用JTable

实际上,我很难对这个组件进行排序

我想以编程方式启用和禁用此功能

我使用
JTable.setAutoCreateSorter(true)
对其进行初始化,我将其更改为false,不发生任何事情

另外,我使用了
JTable.setRowSorter(null)
,它可以工作,但我不知道如何再次启用它

对不起,我的英语很差

检查源代码:

public void setAutoCreateRowSorter(boolean autoCreateRowSorter) {
    boolean oldValue = this.autoCreateRowSorter;
    this.autoCreateRowSorter = autoCreateRowSorter;
    if (autoCreateRowSorter) {
        setRowSorter(new TableRowSorter<TableModel>(getModel()));
    }
    firePropertyChange("autoCreateRowSorter", oldValue,
                       autoCreateRowSorter);
}
检查源代码:

public void setAutoCreateRowSorter(boolean autoCreateRowSorter) {
    boolean oldValue = this.autoCreateRowSorter;
    this.autoCreateRowSorter = autoCreateRowSorter;
    if (autoCreateRowSorter) {
        setRowSorter(new TableRowSorter<TableModel>(getModel()));
    }
    firePropertyChange("autoCreateRowSorter", oldValue,
                       autoCreateRowSorter);
}

您可以使用DefaultRowSorter的
setSortable(int-index,booleanSortable)
方法

    for (int i=0 ; i<table.getColumnCount() ; i++) {
        sorter.setSortable(i, false);
    }

for(int i=0;i您可以使用DefaultRowSorter的
setSortable(int index,boolean sortable)
方法

    for (int i=0 ; i<table.getColumnCount() ; i++) {
        sorter.setSortable(i, false);
    }

用于(int i=0;iThank@dic19,这对我帮助很大。但是现在表的行不可选择,不客气!请查看我的编辑。这很奇怪,因为表排序器根本不应该干扰行选择。也许你可以发布代码@sutiThank@dic19,这对我帮助很大。但是现在表的行不可选择,不客气!请查看我的edit、 这很奇怪,因为表格分拣机根本不应该干扰行选择。也许你可以将你的代码发布到@sutiThanks Macias。它提供了我所期望的巨大帮助!谢谢Macias。它提供了我所期望的巨大帮助!