Swing/ComboCellEditor のバックアップの現在との差分(No.4)
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
http://terai.xrea.jp/swing/combocelleditor/screenshot.png
#spanend
#spanadd
TableColumn col = table.getColumnModel().getColumn(1);
#spanend
#spanadd
col.setCellEditor(new DefaultCellEditor(cb));
#spanend
#spanadd
// col.setCellRenderer(new ComboBoxCellRenderer());
#spanend
#spanadd
View in GitHub: Java, Kotlinサンプルコード
JComboBox combo = new JComboBox(); combo.setBorder(BorderFactory.createEmptyBorder()); combo.addItem("名前0"); combo.addItem("名前1"); combo.addItem("名前2"); table.setDefaultEditor(JComboBox.class, new DefaultCellEditor(combo));
解説
上記のサンプルでは、1
列目のセルエディタとしてコンボボックスを使うDefaultCellEditor
を登録しています。
解説
コンボボックスを使うDefaultCellEditorオブジェクトを生成し、JTable#setDefaultEditorメソッドでこれをJComboBox.classのエディタに設定しています。参考リンク
- Santhosh Kumar's Weblog : Santhosh Kumar's Weblog
- JTableのCellRendererにJComboBoxを設定
- セルの表示にも
JComboBox
を使用する場合はJComboBox
を継承するセルレンダラーを使用する
- セルの表示にも
- JComboBoxセルエディタのドロップダウンリストを編集開始直後は表示しないよう設定する