1 import javax.swing.*;
2 import javax.swing.table.*;
3 import java.awt.*;
4
5 public class SortTable {
6 public static void main(String args[]) {
7 Runnable runner = new Runnable() {
8 public void run() {
9 JFrame frame = new JFrame("Sorting JTable");
10 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
11 Object rows[][] = {
12 { "AAA", "你", 1d },
13 { "AAB", "我", 2d },
14 { "ABC", "このページを印刷", 3.14 },
15 { "BBB", "hermit", 3.14 },
16 { "BBC", "0", 1.3 },
17 { "AAA", "!!!", 93.02 }
18 };
19 String columns[] = { "英文测试", "多语言测试", "数字测试" };
20 TableModel model = new DefaultTableModel(rows, columns) {
21 private static final long serialVersionUID = 5766888502894481655L;
22
23 public Class getColumnClass(int column) {
24 Class returnValue;
25 if ((column >= 0) && (column < getColumnCount())) {
26 returnValue = getValueAt(0, column).getClass();
27 } else {
28 returnValue = Object.class;
29 }
30 return returnValue;
31 }
32 };
33
34 JTable table = new JTable(model);
35 RowSorter<TableModel> sorter = new TableRowSorter<TableModel>(
36 model);
37 table.setRowSorter(sorter);
38 JScrollPane pane = new JScrollPane(table);
39 frame.add(pane, BorderLayout.CENTER);
40 frame.setSize(300, 150);
41 frame.setVisible(true);
42 }
43 };
44 EventQueue.invokeLater(runner);
45 }
46 }
47
运行上面的代码大家可以看到一个可以排序的表格,对多语言支持的非常好。
有一点要注意:
每列的数据类型要一致,比如最后一列的1d,2d,如果直接写1,2,因为和下面类型不一致,程序会出错。
posted on 2007-05-14 09:49
交口称赞 阅读(1327)
评论(4) 编辑 收藏 所属分类:
Java6