Cazperのつれづれ日記: 【NetBeans】jTableのセルのエディタでコンボボックスを使えるようにする【java】

« このままでは無敵の人が増えていく | メイン | ネコと糸の理論 »

2008年12月 8日

panda01.gif 【NetBeans】jTableのセルのエディタでコンボボックスを使えるようにする【java】

NetBeansに限った話ではないのですけれども、JTableのセルエディタでコンボボックスを使うための簡単な例を紹介しておきます。

適当に作成したJFrame上に、jTableとjButtonを配置します。
001

jButtonのアクションを設定します。(今回はbuttonClicked関数を設定)
002

buttonClicked関数の中身を実装していきます。JComboBoxのインスタンスをDefaultCellEditorの引数に用いて、DefaultCellEditorのインスタンスをsetCellEditorの引数として用います。
003

ボタンを押すと、「Title 1」の列のセル全てがコンボボックスとして使えるようになります。
004


次に設置したコンボボックスから値を取得する方法を紹介します。一例として、値を取得するためのボタンを設置します。
005

設置したボタンをクリックした際のイベント関数を実装します。
006
System.out.println((JComboBox)((DefaultCellEditor)(jTable1.getCellEditor(3, 0))).getComponent()).getSelectedIndex());

実際にボタンを押してみると標準出力にComboBoxで選択したIndexが表示されます。
007


<参考サイト>
● javadrive...コンボボックスをセルエディタとして設定する
● プログラマメモ2...JTableのセルのエディターにコンボボックスを使う


P.S.1
個々のセルごとに個別のComboBoxを設置するには、DefaultCellEditor の派生クラスを作る必要があります


P.S.2
今更思い出したのですがJavaの開発環境Forteって今どういう扱いなんだろう。いつの間にか名前を聞かなくなったなぁ。(ここにちょっと書いてあった)

投稿者 cazper : 2008年12月 8日 23:50 | b_entry.gif
     

トラックバック

このエントリーのトラックバックURL:
http://www.cazoo.jp/cgi/mt/mt-tb.cgi/2376

コメント