Swing/ComboCellEditor のバックアップの現在との差分(No.11)
TITLE:JTableのCellEditorにJComboBoxを設定
Posted by terai at 2005-09-26
JTableのCellEditorにJComboBoxを設定
JTableのCellEditorにJComboBoxを使用し、リストから値を選択できるようにします。- category: swing folder: ComboCellEditor title: JTableのCellEditorにJComboBoxを設定 tags: [JTable, TableCellEditor, JComboBox, TableColumn] author: aterai pubdate: 2005-09-26T15:27:12+09:00 description: JTableのCellEditorにJComboBoxを使用し、リストから値を選択できるようにします。 image:
概要
JTable
のCellEditor
にJComboBox
を使用し、リストから値を選択できるようにします。
- &jnlp;
- &jar;
- &zip;
Screenshot
Advertisement
#screenshot
サンプルコード
#spanend
#spanadd
* サンプルコード [#sourcecode]
#spanend
#spanadd
#code(link){{
#spanend
JComboBox cb = new JComboBox(new String[] {"名前0", "名前1", "名前2"});
#spandel
cb.setBorder(BorderFactory.createEmptyBorder());
#spanend
#spanadd
cb.setBorder(BorderFactory.createEmptyBorder());
#spanend
TableColumn col = table.getColumnModel().getColumn(1);
col.setCellEditor(new DefaultCellEditor(cb));
#spandel
//col.setCellRenderer(new ComboBoxCellRenderer());
#spanend
#spanadd
// col.setCellRenderer(new ComboBoxCellRenderer());
#spanend
解説
上記のサンプルでは、1列目のセルエディタとしてコンボボックスを使うDefaultCellEditorを登録しています。解説
上記のサンプルでは、1
列目のセルエディタとしてコンボボックスを使うDefaultCellEditor
を登録しています。
コンボボックスの余白を0にしておくと、セル内にきれいにぴったり収まります(参考:Santhosh Kumar's Weblog : Santhosh Kumar's Weblog)。
- 以下は余白を0にしていない場合
#screenshot(,screenshot2.png)
- コンボボックスの余白を
0
に設定しないとセル内文字列の上下が欠けてしまう場合がある
- コンボボックスの余白を
参考リンク
- Santhosh Kumar's Weblog : Santhosh Kumar's Weblog
- JTableのCellRendererにJComboBoxを設定
- セルの表示にも
JComboBox
を使用する場合はJComboBox
を継承するセルレンダラーを使用する
- セルの表示にも
- JComboBoxセルエディタのドロップダウンリストを編集開始直後は表示しないよう設定する