データベースにいくつかの名前と対応するコードを持つテーブルがありますが、jcombobox に名前を表示したいのですが、その jcombobox から任意の名前を選択すると、対応するコードが返されます。
テーブルはこんな感じ
ネームコード
a 1
b 2
c 3
コードと名前をオブジェクトにラップし、リスト セル レンダラーを使用して名前のみをレンダリングしない理由はありませんが、.getSelectedItem から返されたオブジェクトを取得し、そこからコードを抽出できます
ラッパークラスを作成できます-それを呼び出しましょうTableElement
:
class TableElement {
public String name;
public double value;
public TableElement(String n, double v) {
name = n;
value = v;
}
// this is what is shown in the JComboBox
public String toString() {
return name;
}
}
次に、すべてのテーブル要素の配列を作成し、JComboBox
このようなものを作成できます
Vector<TableElement> vect = new Vector<TableElement>();
for (/* all your table elements */)
vect.add(new TableElement(elementName, elementValue);
JComboBox comboBox = new JComboBox(vect);
次のように読み上げます。
TableElement selected = (TableElement)comboBox.getSelectedItem();
System.out.println("name = " +selected.name + ",value = " + selected.value);
見てきた
ItemListener (発生するイベントは常に 2 回)