我想從列表中填充JComboBox
,但是我得到的組合爲空。從List中填充JComboBox
代碼有什麼問題?
List<Rank> rank = GetRanks();
Vector model = new Vector();
for (Rank s : rank) {
model.addElement(new Rank(s.getRankId(), s.getRankName()));
}
jComboBox1 = new JComboBox(model);
我想從列表中填充JComboBox
,但是我得到的組合爲空。從List中填充JComboBox
代碼有什麼問題?
List<Rank> rank = GetRanks();
Vector model = new Vector();
for (Rank s : rank) {
model.addElement(new Rank(s.getRankId(), s.getRankName()));
}
jComboBox1 = new JComboBox(model);
什麼是錯的東西,如
DefaultComboBoxModel<Rank> model = new DefaultComboBoxModel<>();
for (Rank r : rank) {
model.addElement(r);
}
jComboBox1 = new JComboBox(model);
或
DefaultComboBoxModel<Rank> model = new DefaultComboBoxModel<>(rank.toArray(new Rank[rank.size()]);
jComboBox1 = new JComboBox(model);
不要忘記,以確保您添加jComboBox1
的東西,是顯示
仍然無法正常工作。我嘗試過(Rank s:rank){jComboBox1.addItem(s.getRankName()); }和工作,但我想在組合中添加標籤和值 –
考慮提供一個[可運行的示例](https://stackoverflow.com/help/mcve),它演示了您的問題。這不是代碼轉儲,而是您正在做的事情的一個例子,它突出了您遇到的問題。這會減少混淆和更好的反應 – MadProgrammer
沒有什麼是錯的用您的代碼快速瀏覽一下:
我覺得3可能是最有可能在這裏因爲你正在創建一個新的,然後不做任何事情。您可能想要更改舊版本中的項目,而不是創建新項目。
嘗試在調試器中運行您的程序,並逐步查看您的代碼,看看它在每個步驟中正在執行的操作。
請重命名爲'getRanks',爲什麼你要使用'Vector'而不是'ArrayList'?而且你正在從現有的Rank中構建一個新的Rank,這對我來說有點奇怪。 – Maroun
考慮提供一個[可運行的示例](https://stackoverflow.com/help/mcve),它演示了您的問題。這不是代碼轉儲,而是您正在做的事情的一個例子,它突出了您遇到的問題。這將導致更少的混淆和更好的反應 – MadProgrammer
試試![this](http://stackoverflow.com/questions/4642698/liststring-array-in-jcombobox) –