JTable按某一列排序有问题,该怎么解决?

时间:2022-07-25 04:51:28
JTable按value列排序有问题,该怎么解决?

package christ.java.swing;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;

public class JTableSortDemo {
public static void main(String[] args) {
Object[][] data = { { "A", "79260.00","失望" }, { "B", "450150.00" ,"测试"}, { "C", "100000.00" ,"ces"}, { "D", "8.9" ,"你好"} };
String columnNames[] = { "Item", "Value","名称" };
TableModel model = new DefaultTableModel(data, columnNames) {
public Class<?> getColumnClass(int column) {
return getValueAt(0, column).getClass();
}
};
JTable table = new JTable(model);

TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model);
//sorter.setSortable(1, false);
table.setRowSorter(sorter);

JScrollPane scrollPane = new JScrollPane(table);
JFrame frame = new JFrame("Sorting Table");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(scrollPane);
frame.setSize(300, 200);
frame.setVisible(true);
}
}

8 个解决方案

#1


什么问题?想反过来?

#2


引用 1 楼 sunyiz 的回复:
什么问题?想反过来?

运行下,排序结果不对啊

#3


我这里貌似是对的……

#4


引用 3 楼 sunyiz 的回复:
我这里貌似是对的……


value那一列 100000.00和450150。00顺序不对的。

#5


字符串的排序嘛,
肯定是这样的结果罗

#6


为什么呢?我要按double排序的那种结果现实,怎么做呢?

#7


就是我要现实成: 450150.00  100000.00 79260.00 8.9 这样的顺序,而且小数点位数也必须是这样

#8


好奇:
楼主的这个,程序是怎么知道是按照“value”排序还是“名称”排序呢??

#1


什么问题?想反过来?

#2


引用 1 楼 sunyiz 的回复:
什么问题?想反过来?

运行下,排序结果不对啊

#3


我这里貌似是对的……

#4


引用 3 楼 sunyiz 的回复:
我这里貌似是对的……


value那一列 100000.00和450150。00顺序不对的。

#5


字符串的排序嘛,
肯定是这样的结果罗

#6


为什么呢?我要按double排序的那种结果现实,怎么做呢?

#7


就是我要现实成: 450150.00  100000.00 79260.00 8.9 这样的顺序,而且小数点位数也必须是这样

#8


好奇:
楼主的这个,程序是怎么知道是按照“value”排序还是“名称”排序呢??