所以我有一个 JComboBox,我可以很好地选择其中的每个项目。在 System.out.print 中,我得到了正确的值,但是当我在字符串“Create Map”上执行 .equals 时,它不会被 if 控制语句捕获。我在这里遗漏了一些明显的东西吗?
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"))