Swing/ComboCellEditor のバックアップの現在との差分(No.18)
- 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
を使用し、リストから値を選択できるようにします。
Screenshot
Advertisement
サンプルコード
JComboBox cb = new JComboBox(new String[] {"名前0", "名前1", "名前2"});
cb.setBorder(BorderFactory.createEmptyBorder());
TableColumn col = table.getColumnModel().getColumn(1);
col.setCellEditor(new DefaultCellEditor(cb));
#spandel
//col.setCellRenderer(new ComboBoxCellRenderer());
#spanend
#spanadd
// col.setCellRenderer(new ComboBoxCellRenderer());
#spanend
View in GitHub: Java, Kotlin解説
上記のサンプルでは、1
列目のセルエディタとしてコンボボックスを使うDefaultCellEditor
を登録しています。
- -
コンボボックスの余白を
0
にしておくと、セル内にきれいにぴったり収まります(参考: Santhosh Kumar's Weblog : Santhosh Kumar's Weblog)。
- 以下は余白を
0
にしていない場合
- コンボボックスの余白を
0
に設定しないとセル内文字列の上下が欠けてしまう場合がある
- -
セルの表示にも
JComboBox
を使用する場合は、JTableのCellRendererにJComboBoxを設定を参考にJComboBox
を継承するセルレンダラーを使用してみてください。
参考リンク
- Santhosh Kumar's Weblog : Santhosh Kumar's Weblog
- JTableのCellRendererにJComboBoxを設定
- セルの表示にも
JComboBox
を使用する場合はJComboBox
を継承するセルレンダラーを使用する
- セルの表示にも
- JComboBoxセルエディタのドロップダウンリストを編集開始直後は表示しないよう設定する