Swing/CellEditorBorder のバックアップソース(No.9)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- バックアップ を表示
- Swing/CellEditorBorder へ行く。
- 1 (2005-08-22 (月) 08:08:31)
- 2 (2005-09-16 (金) 12:33:58)
- 3 (2006-02-27 (月) 15:31:19)
- 4 (2006-04-12 (水) 19:35:52)
- 5 (2007-02-15 (木) 16:30:37)
- 6 (2007-04-10 (火) 00:21:58)
- 7 (2008-06-20 (金) 13:36:20)
- 8 (2011-05-24 (火) 02:11:46)
- 9 (2013-03-27 (水) 16:36:20)
- 10 (2014-11-27 (木) 01:34:47)
- 11 (2015-01-22 (木) 21:17:10)
- 12 (2016-07-26 (火) 16:01:10)
- 13 (2017-09-27 (水) 19:06:59)
- 14 (2019-03-29 (金) 19:13:46)
- 15 (2021-01-07 (木) 16:47:00)
- 16 (2023-07-07 (金) 13:52:49)
- 17 (2023-11-16 (木) 14:54:55)
TITLE:CellEditorのBorderを変更 #navi(../) #tags() RIGHT:Posted by &author(aterai); at 2005-08-22 *CellEditorのBorderを変更 [#ia1fb931] JTableのCellEditorにBorderを設定します。 -&jnlp; -&jar; -&zip; //#screenshot #ref(http://lh3.ggpht.com/_9Z4BYR88imo/TQTIiyFXk2I/AAAAAAAAAS8/Dgu1EqDMma4/s800/CellEditorBorder.png) **サンプルコード [#t48217b5] #code(link){{ JTextField field = new JTextField(); field.setBorder(BorderFactory.createLineBorder(Color.RED, 2)); table.setDefaultEditor(Object.class, new DefaultCellEditor(field)); }} **解説 [#q9485122] 上記のサンプルでは、BorderFactory.createLineBorder(Color.RED, 2)を設定したJTextFieldを使用するDefaultCellEditorを作成し、JTable#setDefaultEditor(...)で、Object.classのデフォルトエディタとして設定しています。 ---- JTable#setDefaultEditor(...)を使用せずに、JTable#prepareEditor(...)をオーバーライドして、セルエディタとして使用するコンポーネントの背景色やBorderを変更することもできます。 #code{{ JTable table = new JTable(model) { @Override public Component prepareEditor( TableCellEditor editor, int row, int column) { Component c = super.prepareEditor(editor, row, column); if(c instanceof JCheckBox) { JCheckBox b = (JCheckBox)c; b.setBorderPainted(true); b.setBackground(getSelectionBackground()); }else if(c instanceof JComponent && convertColumnIndexToModel(column)==1) { ((JComponent)c).setBorder( BorderFactory.createLineBorder(Color.GREEN, 2)); } return c; } }; }} **参考リンク [#ydf6ae4b] - [[JTableが使用するBooleanCellEditorの背景色を変更>Swing/BooleanCellEditor]] **コメント [#q0b2f0c8] //- DefaultTableModel#getColumnClassとJTable#getColumnClassで動作が異なると勘違い((コンパイルし忘れていたみたいです))して解説していたのを修正しました。 -- [[aterai]] &new{2005-08-22 (月) 16:53:30}; //- 0列目を実際に編集してソートするとClassCastExceptionが発生するバグがあります。 -- [[aterai]] &new{2005-08-22 (月) 17:07:47}; //-- 修正するのを綺麗サッパリ忘れていました…。修正しました。 -- [[aterai]] &new{2007-02-15 (木) 16:34:10}; #comment