Swing/EnumSet のバックアップ差分(No.2)
- バックアップ一覧
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Swing/EnumSet へ行く。
- 1 (2012-12-11 (火) 20:49:33)
- 2 (2013-01-29 (火) 23:45:06)
- 3 (2014-12-02 (火) 01:23:29)
- 4 (2016-02-19 (金) 15:02:22)
- 5 (2017-07-12 (水) 13:01:47)
- 6 (2018-02-24 (土) 19:51:30)
- 7 (2018-07-12 (木) 18:07:28)
- 8 (2018-08-16 (木) 14:19:33)
- 9 (2019-02-20 (水) 15:33:38)
- 10 (2019-04-19 (金) 13:43:27)
- 11 (2019-05-22 (水) 19:35:38)
- 12 (2019-08-29 (木) 15:54:58)
- 13 (2021-04-20 (火) 20:02:00)
- 追加された行はこの色です。
- 削除された行はこの色です。
TITLE:JTableの列にEnumSetを使用する #navi(../) #tags(JTable, EnumSet, JCheckBox, TableCellRenderer, TableCellEditor) RIGHT:Posted by &author(aterai); at 2012-05-21 *JTableの列にEnumSetを使用する [#fd986dd9] JTableの列にEnumSetを設定し、その状態をJCheckBoxを使ったレンダラーで表示します。 ``JTable``の列に``EnumSet``を設定し、その状態を``JCheckBox``を使ったレンダラーで表示します。 -&jnlp; -&jar; -&zip; //#screenshot #ref(https://lh6.googleusercontent.com/-sFAMn6DioFo/T7nL6BrEaHI/AAAAAAAABM0/QqVOr4uGNdE/s800/EnumSet.png) **サンプルコード [#r2000810] #code(link){{ enum Permissions { EXECUTE, WRITE, READ; } }} #code{{ private final Object[][] data = { {"owner", EnumSet.of(Permissions.READ, Permissions.WRITE, Permissions.EXECUTE)}, {"group", EnumSet.of(Permissions.READ)}, {"other", EnumSet.noneOf(Permissions.class)} }; }} #code{{ @Override public Object getCellEditorValue() { EnumSet<Permissions> f = EnumSet.noneOf(Permissions.class); if(buttons[0].isSelected()) f.add(Permissions.READ); if(buttons[1].isSelected()) f.add(Permissions.WRITE); if(buttons[2].isSelected()) f.add(Permissions.EXECUTE); return f; } }} **解説 [#h7f85cf3] 上記のサンプルでは、[[JTableのCellにJCheckBoxを複数配置する>Swing/CheckBoxesInTableCell]]と同様に、パーミッション(第1列目)をJCheckBoxを配置したJPanelで作成したセルレンダラーで表現していますが、モデルのデータはビットフラグではなく、EnumSetを使用するように変更しています。 上記のサンプルでは、[[JTableのCellにJCheckBoxを複数配置する>Swing/CheckBoxesInTableCell]]と同様に、パーミッション(第1列目)を``JCheckBox``を配置した``JPanel``で作成したセルレンダラーで表現していますが、モデルのデータはビットフラグではなく、``EnumSet``を使用するように変更しています。 **参考リンク [#a8c6193a] - [[JTableのCellにJCheckBoxを複数配置する>Swing/CheckBoxesInTableCell]] - [http://www.ne.jp/asahi/hishidama/home/tech/java/enum.html#h2_flag フラグとしての論理和(EnumSetの例) - Java列挙型メモ(Hishidama's Java enum Memo)] **コメント [#z3cd7fd6] #comment