1
import
javax.swing.
*
;
2 import javax.swing.table. * ;
3 import java.awt. * ;
4
5 public class SortTable{
6 public static void main(Stringargs[]){
7 Runnablerunner = new Runnable(){
8 public void run(){
9 JFrameframe = new JFrame( " SortingJTable " );
10 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
11 Objectrows[][] = {
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 Stringcolumns[] = { " 英文测试 " , " 多语言测试 " , " 数字测试 " };
20 TableModelmodel = new DefaultTableModel(rows,columns){
21 private static final long serialVersionUID = 5766888502894481655L ;
22
23 public ClassgetColumnClass( int column){
24 ClassreturnValue;
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 JTabletable = new JTable(model);
35 RowSorter < TableModel > sorter = new TableRowSorter < TableModel > (
36 model);
37 table.setRowSorter(sorter);
38 JScrollPanepane = 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
2 import javax.swing.table. * ;
3 import java.awt. * ;
4
5 public class SortTable{
6 public static void main(Stringargs[]){
7 Runnablerunner = new Runnable(){
8 public void run(){
9 JFrameframe = new JFrame( " SortingJTable " );
10 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
11 Objectrows[][] = {
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 Stringcolumns[] = { " 英文测试 " , " 多语言测试 " , " 数字测试 " };
20 TableModelmodel = new DefaultTableModel(rows,columns){
21 private static final long serialVersionUID = 5766888502894481655L ;
22
23 public ClassgetColumnClass( int column){
24 ClassreturnValue;
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 JTabletable = new JTable(model);
35 RowSorter < TableModel > sorter = new TableRowSorter < TableModel > (
36 model);
37 table.setRowSorter(sorter);
38 JScrollPanepane = 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,因为和下面类型不一致,程序会出错。