1

だから私は 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"))
4

2 に答える 2