У меня есть простой JTable
с 3 колонками. Числа становятся большими, поэтому я отформатирую их, помещая в них запятые, т. Е. 100 000. Однако при этом сортировка таблицы не работает.JTable - сортировка не работает с отформатированными номерами
Как это исправить?
package tables;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class mainwindow extends JPanel {
public static void main(String[] args) {
Object[][] data = {
{"75,500", "Don't Let Go", new Integer(179)},
{"121,343", "Photograph", new Integer(29)},
{"32,323", "Hash Pipe", new Integer(186)}
};
Object[] columns = {"Track #", "Title", "Length"};
DefaultTableModel model = new DefaultTableModel(data,columns) {
@Override
public Class getColumnClass(int column) {
switch (column) {
case 0:
return String.class;
case 1:
return String.class;
case 2:
return Integer.class;
default:
return String.class;
}
}
};
JTable table = new JTable(model);
JScrollPane scroll = new JScrollPane(table);
table.setAutoCreateRowSorter(true);
JOptionPane.showMessageDialog(null, scroll);
}
}
1+ для переопределения 'setVal ue (...) 'метода рендеринга. – camickr
Обратите внимание, что эта процедура может привести к тому, что числа не будут выравниваться справа от ячейки. Чтобы исправить это, просто используйте renderer.setHorizontalAlignment (JLabel.RIGHT). См. [Этот связанный вопрос] (https://stackoverflow.com/questions/3467052/set-right-alignment-in-jtable-column). – Candamir