I am trying to sort integers in my 2nd column of my JTable. I used table.setAutoCreateRowSorter(true); but it is sorting by strings. I am trying to write some code to get around this but I cannot get it to work.

DefaultTableModel m = new DefaultTableModel();
String columnName = "Occurrences";  
m.addColumn("String");
m.addColumn(columnName);
JTable table = new JTable(m);
table.setAutoCreateRowSorter(true);


if (m.findColumn(columnName) == 2)
    {
            return Integer.class;
    } else {

            return null;
    }

This is the only way I can get this to even compile by adding Class<Integer> into my function. This doesn't work

有帮助吗?

解决方案

Your code isn't very clear, but if you want the second column class to be Integer, you just need to override it:

DefaultTableModel m = new DefaultTableModel() {
    @Override
    public Class<?> getColumnClass(int column) {
        if (column == 1) {
            return Integer.class;
        }
        return super.getColumnClass(column);
    }
};
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top