有人可以帮我弄这个吗? 它一直有效,直到我更改了一些试图优化它的东西……该死! 这是我的表模型: 这就是我实现JTable的方式: 我正在触发以下异常: sorter.setSortKeys(list); 我相信这与未正确创建的TableColumnMode ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我在处理SortKeys时遇到了麻烦。 我有一个使用自定义TableModel的表。 我正在尝试使用SortKeys对表进行排序。 但是由于某种原因,我在sorter.setSortKeys(sortKeys);
上出现错误sorter.setSortKeys(sortKeys);
谁能帮忙吗?
我的TableModel类是这样的:
class WrongAnswersTableModel extends AbstractTableModel {
private static final long serialVersionUID = 1L;
private ArrayList<Card> wrongAnswers;
public WrongAnswersTableModel(ArrayList<Card> wrongAnswers) {
this.wrongAnswers = wrongAnswers;
}
@Override
public int getColumnCount() {
return 3;
}
@Override
public int getRowCount() {
return wrongAnswers.size();
}
@Override
public String getColumnName(int column) {
String name = "";
switch (column) {
case 0:
name = "Word";
break;
case 1:
name = "Translation";
break;
case 2:
name = "Times Incorrect";
}
return name;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
Card card = wrongAnswers.get(rowIndex);
String value = "";
switch (columnIndex) {
case 0:
value = card.getLangFromPrompt();
break;
case 1:
value = card.getLangToPrompt();
break;
case 2:
value = "" + card.getGuessedWrong();
break;
}
return value;
}
}
我查看了StackOverflow的其余部分,发现getColumnCount返回0,但是在我的模型中,getColumnCount肯定返回3。
我将表和排序器设置如下:
List<SortKey> sortKeys = new ArrayList<SortKey>();
sortKeys.add(new SortKey(2, SortOrder.DESCENDING));
watm = new WrongAnswersTableModel(parent.getTest().getIncorrectCards());
table = new JTable(watm);
table.setEnabled(false);
table.setRowHeight(table.getFont().getSize() + 10);
sorter = new TableRowSorter<TableModel>(table.getModel());
sorter.setSortKeys(sortKeys);
table.setRowSorter(sorter);
((AbstractTableModel) table.getModel()).fireTableDataChanged();
sorter.sort();
谢谢你提供的所有帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.