Swing/FixedWidthColumn のバックアップ差分(No.9)
- バックアップ一覧
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Swing/FixedWidthColumn へ行く。
- 1 (2005-02-03 (木) 02:04:02)
- 2 (2005-04-13 (水) 06:43:43)
- 3 (2005-04-28 (木) 04:32:53)
- 4 (2005-05-27 (金) 02:28:53)
- 5 (2005-05-31 (火) 14:19:51)
- 6 (2005-06-08 (水) 03:21:00)
- 7 (2005-10-25 (火) 15:09:36)
- 8 (2006-01-20 (金) 19:27:07)
- 9 (2006-01-31 (火) 10:42:18)
- 10 (2006-02-27 (月) 15:55:21)
- 11 (2006-12-01 (金) 13:59:27)
- 12 (2007-04-04 (水) 13:04:16)
- 13 (2007-07-26 (木) 14:30:40)
- 14 (2008-11-10 (月) 15:36:25)
- 15 (2009-06-22 (月) 12:24:29)
- 16 (2009-10-29 (木) 16:31:19)
- 17 (2013-04-04 (木) 02:25:33)
- 18 (2013-05-27 (月) 15:34:16)
- 19 (2013-07-26 (金) 01:54:22)
- 20 (2013-08-20 (火) 14:22:57)
- 21 (2015-10-14 (水) 15:36:11)
- 22 (2016-01-12 (火) 17:56:23)
- 23 (2016-05-24 (火) 22:16:06)
- 24 (2016-05-31 (火) 14:57:03)
- 25 (2016-11-01 (火) 19:42:59)
- 26 (2017-11-02 (木) 15:32:16)
- 27 (2017-11-16 (木) 12:21:45)
- 28 (2019-07-09 (火) 19:25:07)
- 29 (2021-03-19 (金) 00:46:14)
- 追加された行はこの色です。
- 削除された行はこの色です。
#navi(../)
*JTableのカラム幅を一部だけ固定する [#y43b86b8]
>編集者:[[Terai Atsuhiro>terai]]~
作成日:2004-02-02~
更新日:&lastmod;
#contents
**概要 [#eb88b514]
JTableのヘッダでカラム幅を一部だけ固定します。
http://terai.xrea.jp/swing/fixedwidthcolumn/screenshot.png
**サンプルコード [#ycba6fb1]
//すべてのヘッダカラムの幅を変更不可に
//tableHeader.setResizingAllowed(false);
//JTable.AUTO_RESIZE_OFFで、あるカラムの幅を変更不可にしたい場合
//jtable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
//col.setPreferredWidth(50);
//col.setResizable(false);
//カラムの幅を変更不可にしたい場合
TableColumn col = jtable.getColumnModel().getColumn(0);
col.setMinWidth(50);
col.setMaxWidth(50);
//0に固定すると表示されない列が作成できる
//col = jtable.getColumnModel().getColumn(1);
//col.setMinWidth(0);
//col.setMaxWidth(0);
-[[サンプルを起動>http://terai.xrea.jp/swing/fixedwidthcolumn/sample.jnlp]]
-[[jarファイル>http://terai.xrea.jp/swing/fixedwidthcolumn/sample.jar]]
-[[ソース>http://terai.xrea.jp/swing/fixedwidthcolumn/src.zip]]
**解説 [#p4a1f313]
-JTableHeader の setResizingAllowed(booelan)を使うと、すべてのカラム幅が変更不可になってしまう
-TableColumnのsetResizable(boolean)は、JTable#setAutoResizeMode(JTable.AUTO_RESIZE_OFF)の場合でなければならない
上記のような条件でも、setMaxWidth(int)、setMinWidth(int)を使用すると、カラム幅を固定することができます。
サンプルでは、一番最初のカラム幅が50ptで固定しています。カーソルも変化しないようにする場合は、setResizable(false)も一緒に指定します。
また、以下のようにカラム幅を0に固定すると、表示されない列を作成することができます。一時的にカラムを隠したいけど、removeColumn(col)、addColumn(col)、moveColumn(…)のように元の場所に戻すのが面倒なときに使えるかもしれません。
TableColumn col = jtable.getColumnModel().getColumn(1);
col.setMinWidth(0);
col.setMaxWidth(0);
各カラムの幅を固定するのではなく、表を2つ使用して、あるカラムを常に表示しておく(スクロールで隠れないよう固定)場合は、[[Fixed Column Example>http://access1.sun.com/FAQSets/FixedColumnExample.java.html]]を参照してください。
カラムの位置を固定してドラッグなどでの移動を禁止したい場合は、[[JTableのヘッダ入れ替えを禁止>Swing/Reordering]]を参照してください。
**参考リンク [#sfbc562d]
-[[FixedColumnExample>http://www.physci.org/codes/display.jsp?fl=%2Fcodes%2Ftame%2Ftame%2Fexamples%2FFixedColumnExample.java]]
-[[Fixed Column Example>http://access1.sun.com/FAQSets/FixedColumnExample.java.html]]
**コメント [#t86a6bd8]
#comment