gpt4 book ai didi

java - JTable 服务器端排序

转载 作者:太空宇宙 更新时间:2023-11-04 08:16:27 25 4
gpt4 key购买 nike

我有一个客户端/服务器应用程序,我的 JTable 已分页,它仅显示一定范围的数据。现在我想处理服务器端的排序。如何自定义默认排序实现?

最佳答案

我找到了一个可行的解决方案,但我确信它不是最好的! :)

...
final MyTableModel myModel = new MyTableModel();
final MySorter mySorter = new MySorter(myModel);
mySorter.addRowSorterListener(new RowSorterListener() {

@Override
public void sorterChanged(RowSorterEvent e) {
// server side sorting
sortDataByColumn(mySorter.getColumnToSort());
}
});

JTable table = new JTable();
table.setModel(myModel);
table.setRowSorter(mySorter);
...

class MySorter extends TableRowSorter<TableModel> {

private String columnToSort;

public MySorter(AbstractTableModel model) {
super(model);
}

@Override
public void sort() {
// do nothing! because server side sorting
}

@Override
protected void fireSortOrderChanged() {
// build a string like [+-]column_identifier.
// where + is for ASC and - for DESC ordering
final SortKey k = getSortKeys().get(0);
final String colName = getModel().getTableColumnModel()
.getColumn(k.getColumn()).getIdentifier().toString();

if (colName != null && !colName.isEmpty()) {
columnToSort = (k.getSortOrder() == SortOrder.ASCENDING ? '+' : '-') + colName;
} else {
columnToSort = null;
}
super.fireSortOrderChanged();
}

public String getColumnToSort() {
return columnToSort;
}
}

关于java - JTable 服务器端排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10331156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com