I'm having a bit of trouble dealing with SortKeys. I have a table which uses a custom TableModel. I'm trying to sort the table using SortKeys. For some reason, though, I am getting an error on the line sorter.setSortKeys(sortKeys);
Could anyone please help?
My TableModel class is this:
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;
}
}
I looked on the rest of StackOverflow and there was something about getColumnCount returning 0, but in my model, getColumnCount definitely returns 3.
I set up my table and the sorter as follows:
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();
Thanks for any help you can give!
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.