Swing/TableRowSorter のバックアップ差分(No.14)
- バックアップ一覧
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Swing/TableRowSorter へ行く。
- 1 (2007-08-27 (月) 18:19:38)
- 2 (2007-10-16 (火) 15:51:55)
- 3 (2007-10-18 (木) 21:34:03)
- 4 (2007-11-19 (月) 16:59:03)
- 5 (2008-03-21 (金) 14:11:06)
- 6 (2008-05-14 (水) 13:43:19)
- 7 (2008-05-30 (金) 20:53:42)
- 8 (2008-06-20 (金) 13:38:02)
- 9 (2008-08-04 (月) 12:27:21)
- 10 (2008-08-25 (月) 14:47:10)
- 11 (2008-09-15 (月) 13:46:02)
- 12 (2010-08-04 (水) 19:22:45)
- 13 (2010-11-09 (火) 18:04:13)
- 14 (2011-02-04 (金) 15:17:39)
- 15 (2011-12-16 (金) 15:04:28)
- 16 (2013-02-09 (土) 23:41:58)
- 17 (2013-07-22 (月) 18:29:47)
- 18 (2013-07-22 (月) 21:12:08)
- 19 (2013-07-26 (金) 01:25:13)
- 20 (2013-10-14 (月) 00:12:38)
- 21 (2015-03-11 (水) 18:29:12)
- 22 (2015-03-28 (土) 15:36:39)
- 23 (2015-04-16 (木) 11:38:37)
- 24 (2016-05-27 (金) 15:59:01)
- 25 (2016-08-19 (金) 16:14:02)
- 26 (2016-09-02 (金) 12:35:23)
- 27 (2017-04-04 (火) 14:13:45)
- 28 (2017-04-04 (火) 14:17:08)
- 29 (2017-10-11 (水) 13:55:18)
- 30 (2017-11-02 (木) 15:32:16)
- 31 (2018-10-13 (土) 21:34:22)
- 32 (2018-11-08 (木) 17:46:53)
- 33 (2020-11-05 (木) 11:32:08)
- 34 (2022-10-14 (金) 13:42:44)
- 追加された行はこの色です。
- 削除された行はこの色です。
TITLE:TableRowSorterでJTableのソート #navi(../) RIGHT:Posted by [[terai]] at 2007-02-12 RIGHT:Posted by [[aterai]] at 2007-02-12 *TableRowSorterでJTableのソート [#m6d46918] JDK 6 で導入された、TableRowSorterを利用して、JTableの行を降順、昇順にソートします。 -&jnlp; -&jar; -&zip; #screenshot //#screenshot #ref(http://lh4.ggpht.com/_9Z4BYR88imo/TQTUnbg2jyI/AAAAAAAAAmU/-7yjlGSjBmo/s800/TableRowSorter.png) **サンプルコード [#ibb86eb9] #code{{ TestModel model = new TestModel(); TableModel model = makeTestTableModel(); JTable table = new JTable(model); RowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model); table.setRowSorter(sorter); }} **解説 [#fbc5127f] JDK 6 では、JTableにTableRowSorterを設定することで、カラムヘッダのクリックによる行ソートが行えます。 以下のように、JTable#autoCreateRowSorter(true); メソッドを使用した場合も、JTable が自動的に RowSorter を作成して、ソートが出来るようになります。 #code{{ JTable table = new JTable(model); table.setAutoCreateRowSorter(true); }} ---- TableRowSorterのデフォルトでは、ヘッダクリックで(降順、昇順)とソートが切り替わり、TableSorterのように(降順、昇順、初期状態)ではなくなっています。上記のサンプルでは、下のボタンをクリックすると、DefaultRowSorter#setSortKeys(List)にnullを代入することで初期状態に戻るようにしています。 -SwingLabsのJXTableのように「Shift+ヘッダクリック」で初期状態 --[[TableRowSorterのSortKeysをクリアする>Swing/ClearSortingState]] -TableSorter.javaのようにヘッダクリックで降順、昇順、初期状態とループ --[[TableRowSorterのソートをヘッダクリックで昇順、降順、初期状態に変更>Swing/TriStateSorting]] ---- %%第二キーを使ったソートはTableRowSorter版では出来ない?ようなので、TableSorter.javaを使う場合もまだあるかもしれません。%% 複数キーを使ったソートも可能です。デフォルトではソートキーは3つで、ヘッダにマークが表示されるのは最新のソートキーのみですが、クリックした順に保持されるようです。詳しくはドキュメントや[[Tableの内容をソート>http://syo.cocolog-nifty.com/freely/2006/08/table_616d.html]]などを参照してください。 %%第二キーを使ったソートはTableRowSorter版では出来ない?ようなので、TableSorter.javaを使う場合もまだあるかもしれません。%% 複数キーを使ったソートも可能です。デフォルトではソートキーは3つで、ヘッダにマークが表示されるのは最新のソートキーのみですが、クリックした順に保持されるようです。詳しくはドキュメントや[http://syo.cocolog-nifty.com/freely/2006/08/table_616d.html Tableの内容をソート]などを参照してください。 **参考リンク [#i6859196] -[[How to Use Tables>http://java.sun.com/docs/books/tutorial/uiswing/components/table.html]] -[http://java.sun.com/docs/books/tutorial/uiswing/components/table.html How to Use Tables] -[[TableSorterでJTableをソート>Swing/TableSorter]] -[[TableRowSorterのSortKeysをクリアする>Swing/ClearSortingState]] -[[TableRowSorterのソートをヘッダクリックで昇順、降順、初期状態に変更>Swing/TriStateSorting]] -[[Tableの内容をソート>http://syo.cocolog-nifty.com/freely/2006/08/table_616d.html]] -[http://syo.cocolog-nifty.com/freely/2006/08/table_616d.html Tableの内容をソート] **コメント [#dee0fa5e] - DefaultRowSorter#setMaxSortKeys(int)で複数のキーを用いたソートも出来ているように思います(b86)。ただ、ヘッダー部分がわかりにくいですが。 -- [[syo]] &new{2006-08-03 (木) 11:12:55}; -- ご指摘ありがとうございます。なるほど、こちら([[Tableの内容をソート>http://syo.cocolog-nifty.com/freely/2006/08/table_616d.html]])を使えばうまくいきそうですね。 -- [[terai]] &new{2006-08-03 (木) 12:34:53}; -- ご指摘ありがとうございます。なるほど、こちら([http://syo.cocolog-nifty.com/freely/2006/08/table_616d.html Tableの内容をソート])を使えばうまくいきそうですね。 -- [[aterai]] &new{2006-08-03 (木) 12:34:53}; - rendererがないので、基本的に数字は左揃え、文字列は右揃えで、中央揃えするにはどうすれば宜しいでしょうか? -- [[パンダ]] &new{2007-06-14 (木) 09:40:20}; --長いので[[JTableのセル文字揃え>Swing/CellTextAlignment]]に移動しました。 -- [[terai]] &new{2007-06-14 (木) 13:19:36}; --長いので[[JTableのセル文字揃え>Swing/CellTextAlignment]]に移動しました。 -- [[aterai]] &new{2007-06-14 (木) 13:19:36}; #comment