我有一個表中包含兩個字段如何將JComboBox項目映射到其相應的ID?
- ID
- 名
我已填充的JComboBox「COMBO1」與存儲在數據庫中的所有名稱的數據庫。現在我希望每當用戶選擇「組合1」的項目時,我都能識別所選項目的「ID」。
但問題是,名稱可以在表中複製。因此,假設一張桌子有3個重複的名字,那麼
Q1。如何顯示「combo1」中的項目,以便用戶可以區分這些常用名稱? Q2302。在用戶點擊某個項目後,如果所選項目具有重複內容,如何識別用戶點擊了哪個項目?
我有一個表中包含兩個字段如何將JComboBox項目映射到其相應的ID?
我已填充的JComboBox「COMBO1」與存儲在數據庫中的所有名稱的數據庫。現在我希望每當用戶選擇「組合1」的項目時,我都能識別所選項目的「ID」。
但問題是,名稱可以在表中複製。因此,假設一張桌子有3個重複的名字,那麼
Q1。如何顯示「combo1」中的項目,以便用戶可以區分這些常用名稱? Q2302。在用戶點擊某個項目後,如果所選項目具有重複內容,如何識別用戶點擊了哪個項目?
使用一個類來存儲你的數據對。 JComboBox將使用其toString()方法作爲標籤。
public class Item
{
int id;
String name;
public String toString()
{
return this.name+"("+id+")";
}
}
(...)
Item array[]=new Item[]{ ... };//fill the array with your items
JComboBox c=new JComboBox(array);
(...)
//use the combo
(...)
Item selected=(Item)c.getSelectedItem();
System.err.println("id is "+selected.id);
如果你得到所有的id/name組合,爲什麼不把它們放在一起呢?那麼你可以使用從JComboBox返回的對象來獲得ID。
如:
class NameIDObj{
int id;
String name;
NameIDObj(int id, String name){
this.id = id;
this.name = name;
}
public String toString(){
return name+" ("+id+")";
}
}
JComboBox將一個Object []作爲其值。我並不完全確定,但是您可以嘗試創建自己的類,該類中每個JComboBox項都有一個名稱和一個ID,並嘗試將這些自定義對象的數組傳遞給JComboBox。