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
运行下,排序结果不对啊
#3
我这里貌似是对的……
#4
value那一列 100000.00和450150。00顺序不对的。
#5
字符串的排序嘛,
肯定是这样的结果罗
肯定是这样的结果罗
#6
为什么呢?我要按double排序的那种结果现实,怎么做呢?
#7
就是我要现实成: 450150.00 100000.00 79260.00 8.9 这样的顺序,而且小数点位数也必须是这样
#8
好奇:
楼主的这个,程序是怎么知道是按照“value”排序还是“名称”排序呢??
楼主的这个,程序是怎么知道是按照“value”排序还是“名称”排序呢??
#1
什么问题?想反过来?
#2
运行下,排序结果不对啊
#3
我这里貌似是对的……
#4
value那一列 100000.00和450150。00顺序不对的。
#5
字符串的排序嘛,
肯定是这样的结果罗
肯定是这样的结果罗
#6
为什么呢?我要按double排序的那种结果现实,怎么做呢?
#7
就是我要现实成: 450150.00 100000.00 79260.00 8.9 这样的顺序,而且小数点位数也必须是这样
#8
好奇:
楼主的这个,程序是怎么知道是按照“value”排序还是“名称”排序呢??
楼主的这个,程序是怎么知道是按照“value”排序还是“名称”排序呢??