我正在使用来自 SwingX 组件的 JXTable
。如果我使用 setSortable(boolean flag)
方法,那么它将启用或禁用所有列的排序。
根据我的要求,我想禁用几列的排序并启用其他列的排序。
谁能帮助实现这个功能?
感谢您的回复。你能帮我使用 setSorterClass(String sorterClassName)
来禁用一列的排序吗?你能给我任何代码示例吗?这对我很有帮助。
最佳答案
SwingX 支持 TableColumnExt 级别的每列可排序属性。它的默认值为 true,在创建列后禁用它
table.getColumnExt(myColumnIndex).setSortable(false)
或者在创建时,使用自定义的 ColumnFactory,比如
ColumnFactory factory = new ColumnFactory() {
@Override
public void configureTableColumn(TableModel model, TableColumnExt column) {
super.configureTableColumn(model, column);
if (... your condition to disable sortable) {
column.setSortable(false);
}
}
}
table.setColumnFactory(factory);
table.setModel(model);
JXTable 将负责将列属性同步到排序器,前提是它是 SortController 类型(默认)
关于java - 使用 SwingX 对 JXTable 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6080826/