1
我已經構建了一個組合框,根據另一個組合框的內容動態填充,依此類推。我已經決定,雖然有點可怕,但在填充目標組合框時嘗試迭代源數組的內容。但是,雖然這會導致組合框內容,但它們會重複。我已經遍歷了代碼,並且該數組只被迭代一次。對於(每個)循環兩次 - 填充組合框
private JComboBox regBuildingSelectBox;
...
String[] siteSelectStrings = {"Site", "London", "Long Island"};
JComboBox regSiteSelectBox = new JComboBox(siteSelectStrings);
regSiteSelectBox.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent arg0) {
getDropDownVariables gddv = new getDropDownVariables();
for(String s:
gddv.buildingSelectList
(regSiteSelectBox.getSelectedItem().toString()))
{
regBuildingSelectBox.addItem(s);
}
}
});
regSiteSelectBox.setBounds(24, 336, 282, 20);
contentPane.add(regSiteSelectBox);
regBuildingSelectBox = new JComboBox();
regBuildingSelectBox.setBounds(24, 367, 282, 20);
contentPane.add(regBuildingSelectBox);
包含陣列的代碼如下:
public class getDropDownVariables {
public String[] buildingSelectList(String site)
{
switch (site)
{
case "London":
return new String[] {"Building", "Harvell",
"LYNX Complex", "Caroline", "Salters"};
case "Long Island":
return new String[] {"Building", "Phillips", "Pascal"};
}
return new String[] {"Failed to populate buildings"};
}
而結果:
它只能循環一次,但事件觸發多少次?添加項目之前,您應該清除組合框。 (另外,如果事件多次觸發,則可能需要單獨解決該問題) – musefan
@musefan是的,這是正確的 - 但它看起來無關,因爲爲已填充的組合框添加if子句不會更改結果。 – Wolfish
@Berger哇......真的嗎?這很奇怪......感謝那個鏈接 – Wolfish