所以我有一個JComboBox,我可以選擇其中的每個項目就好了。在System.out.print中,我得到了正確的值,但是當我在字符串「Create Map」上預製一個.equals時,它不會被if控制語句捕獲。我在這裏錯過了很明顯的東西嗎JComboBox getSelectedItem返回正確的值,但.equals不工作
mapSelectionBox = new JComboBox();
mapSelectionBox.setEditable(false);
Map aMapValues;
for(Entry<String, Map> obj : runInfo.getHashMap().entrySet()){
aMapValues = obj.getValue();
mapSelectionBox.addItem(obj.getKey());
}
Object addNewMap = new Object(){public String toString(){ return "Create Map"; } };
mapSelectionBox.addItem(addNewMap);
mapSelectionBox.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
if(mapSelectionBox.getSelectedItem().equals("Create Map")){
xCoordinatesTextField = new JTextField();
xCoordinatesTextField.setEditable(true);
windowContainer.add(xCoordinatesTextField, "6, 4, right, default");
System.out.println("Test");
}else{
System.out.println(mapSelectionBox.getSelectedItem());
}
}
});
所以我開始以爲是正在評估getSelectedItem作爲一個對象,而不是作爲一個字符串,因爲我已經是存儲在散列圖。是這樣嗎?
編輯:我想通了。我只是在上面的代碼中改變了這一點。感謝您的評論。
String selectedItem = mapSelectionBox.getSelectedItem().toString();
if(selectedItem.equalsIgnoreCase("create map"))
什麼是'JComboBox'包含哪些內容? 'String's?你能提供構建組合框的代碼,它是模型嗎?另外,嘗試使用'mapSelectionBox.getSelectedItem()。equalsIgnoreCase' – MadProgrammer 2013-05-13 00:28:37
我更新了代碼以包含我正在構建的類的其餘部分。它們來自哈希映射,但創建映射是一個字符串。 – pmac89 2013-05-13 00:30:34