2014-01-27 46 views
0

嗨,大家好林具有設置我的組合框的選擇項的JComboBox - 數組列表設置所選項目

我目前正在讀它包含一個人

我有一個組合的對象的文件,有點麻煩盒子是通過使用一個數組列表裏面3名由它

我想讀取文件的人的文件中獲取當前的名字和名稱設置爲我的組合框中

繼承人我到目前爲止:

for(Person p : personList){ 
    if(p.getName() == personList.toString()){ 
    personComboBox.setSelectedItem(p.getName()); 
    } 
} 

我已經設法通過文件的讀取,我只是想在我的組合框中

+1

先不要使用'比較兩個字符串值=='。使用'equals()'。其次,我不確定您是否想將名稱與列表的字符串表示進行比較。這是沒有意義的。 –

+0

我的personList是Person類型的人 –

+0

你知道'personList.toString()'是做什麼的嗎?我建議你打印它看看它輸出。 –

回答

0

1更新我選擇的項目 - personList是一個數組,而不是一個項目。 2 - 永遠不要使用==來比較字符串!更喜歡.equals()。

,你應該做的是什麼somethink這樣的:

String personInTheFile = "Fubar Rabuf"; 
for(int i=0; i<personComboBox.getItemCount(); i++){ 
    Person p = personComboBox.getItemAt(i); 
    if(personInTheFile.equals(p.toString())){ 
     personComboBox.setSelectedIndex(i); 
     break; 
    } 
} 
+0

我的arraylist持有我的組合框的值,人被用來檢查該數組的值是否等於person對象我已經從我的文件 –

+0

中拉出來了,但是怎麼樣?在你的文件中,你只有一個人,而不是一個人的名單,對嗎?陣列裏面可能有很多「人物」,但你只是將它與一個「人物」進行比較。即使因爲您正在使用==進行比較,它也不會返回true,因爲它會比較內存地址而不是內容。在上面的代碼中,我解釋了一個簡單的方法來實現你想要的東西(如果我正確理解你的疑惑)。 –