TITLE:JTableのCellEditorにJComboBoxを設定

JTableのCellEditorにJComboBoxを設定

編集者:Terai Atsuhiro
作成日:2005-09-26
更新日:2021-11-07 (日) 05:32:39

概要

JTableのCellEditorにJComboBoxを使用し、リストから値を選択できるようにします。

#screenshot

サンプルコード

 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());
  • &jnlp;
  • &jar;
  • &zip;

解説

上記のサンプルでは、1列目のセルエディタとしてコンボボックスを使うDefaultCellEditorを登録しています。

コンボボックスの余白を0にしておくと、セル内にきれいにぴったり収まります(参考:Santhosh Kumar's Weblog : Santhosh Kumar's Weblog)。

  • 以下は余白を0にしていない場合

    #screenshot(,screenshot2.png)

セルの表示にもJComboBoxを使用する場合は、JTableのCellRendererにJComboBoxを設定を参考にJComboBoxを継承するセルレンダラーを使用してみてください。

参考リンク

コメント