Swing/ComboCellEditor のバックアップの現在との差分(No.10)
TITLE:JTableのCellEditorにJComboBoxを設定
JTableのCellEditorにJComboBoxを設定
編集者:Terai Atsuhiro~
作成日:2005-09-26
更新日:2021-11-07 (日) 05:32:39
概要
JTable
のCellEditor
にJComboBox
を使用し、リストから値を選択できるようにします。
Screenshot
Advertisement
概要
JTableのCellEditorにJComboBoxを使用し、リストから値を選択できるようにします。サンプルコード
#spanend
#spanadd
JComboBox cb = new JComboBox(new String[] {"名前0", "名前1", "名前2"});
#spanend
#spanadd
cb.setBorder(BorderFactory.createEmptyBorder());
#spanend
#spandel
#screenshot
#spanend
#spandel
#spanend
#spandel
**サンプルコード [#y53e1620]
#spanend
#spandel
#code{{
#spanend
JComboBox cb = new JComboBox(new String[] {"名前0", "名前1", "名前2"});
cb.setBorder(BorderFactory.createEmptyBorder());
TableColumn col = table.getColumnModel().getColumn(1);
col.setCellEditor(new DefaultCellEditor(cb));
//col.setCellRenderer(new ComboBoxCellRenderer());
#spanadd
TableColumn col = table.getColumnModel().getColumn(1);
#spanend
#spanadd
col.setCellEditor(new DefaultCellEditor(cb));
#spanend
#spanadd
// col.setCellRenderer(new ComboBoxCellRenderer());
#spanend
View in GitHub: Java, Kotlin- &jnlp;
- &jar;
- &zip;
解説
上記のサンプルでは、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セルエディタのドロップダウンリストを編集開始直後は表示しないよう設定する