I have to sort JTable (Object[][] data, Object[] headers) after adding new row.
Here is the code (doesn't work)
public class Window extends JFrame {
Window() {
super();
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JTable table = new JTable();
table.setModel(new DefaultTableModel(null, new String[]{"col1"}));
TableRowSorter<TableModel> sorter = new TableRowSorter<>(table.getModel());
sorter.setComparator(0, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.compareTo(o2);
}
});
sorter.setSortsOnUpdates(true);
table.setRowSorter(sorter);
DefaultTableModel model = (DefaultTableModel)table.getModel();
model.addRow(new String[] {"A"});
model.addRow(new String[] {"C"});
model.addRow(new String[] {"B"});
this.getContentPane().add(table);
pack();
setVisible(true);
}
public static void main(String[] args) {
new Window();
}
}
Output result : table (A, C, B) , expected (A, B, C)
model - DefaultTableModel
deviceTable - Jtable