import java.awt.BorderLayout; import java.awt.Container; import java.util.Comparator; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableRowSorter; public class swingTest { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ JFrame frame = new JFrame( "サンプル" ); // Xボタンが押された時の挙動 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // ウインドウサイズ frame.setSize( 320 , 160 ); // ウインドウの表示場所とサイズ指定 frame.setLocationRelativeTo( null ); //frame.setBounds(2500, 200, 300, 150); // JFrameよりContentPaneを取得 Container contentPane = frame.getContentPane(); // ボタンのインスタンスを生成 JButton button = new JButton( "button" ); contentPane.add(button, BorderLayout.SOUTH); String[][] tabledata = { { "10" , "1" , "cfd" }, { "1" , "111" , "ade" }, { "9" , "45" , "ree" }, { "3" , "33" , "brt" }}; String[] columnNames = { "データ1" , "データ2" , "データ3" }; DefaultTableModel tableModel = new DefaultTableModel(columnNames, 0 ); TableRowSorter<DefaultTableModel> sorter = new TableRowSorter<DefaultTableModel>(tableModel); JTable table = new JTable(tableModel); sorter.setComparator( 0 , new Comparator<String>() { public int compare(String a, String b) { return Integer.parseInt(a) - Integer.parseInt(b); } }); table.setRowSorter(sorter); for ( int i = 0 ; i < tabledata.length; i++) { tableModel.addRow(tabledata[i]); } JScrollPane scroll = new JScrollPane(table); contentPane.add(scroll, BorderLayout.CENTER); // ウィンドウを表示 frame.setVisible( true ); } } |
sorter.setComparator(0, new Comparator<String>() の行で0を1にすれば、
データ2で数値のソートができる。
0 件のコメント:
コメントを投稿