2016-06-26 7 views
0

Ich habe ActionListener implementiert, so dass meine Schiffsliste sich je nach Nation und Schiffstyp ändert, aber das Problem ist, dass ich keine Schiffe auswählen kann.Kann Artikel aus Combobox nicht auswählen

Irgendeine Idee (n) auf, wo ich vielleicht falsch gelaufen bin?

private class ShipNameListener implements ActionListener 
{ 
    public ShipNameListener() 
    { 
     view.setShipNameListener(this); 
    } 

    @Override 
    public void actionPerformed(ActionEvent arg0) 
    {   
     if (view.getNationComboBox().getSelectedItem() == "USA") 
     { 
      if (view.getShipTypeComboBox().getSelectedItem() == "Battleship") 
      { 
       view.setShipList(lists.getUSABattleships()); 
      } 
      else if (view.getShipTypeComboBox().getSelectedItem() == "CV") 
      { 
       view.setShipList(lists.getUSACVs()); 
      } 
      else if (view.getShipTypeComboBox().getSelectedItem() == "Destroyer") 
      { 
       view.setShipList(lists.getUSADestroyers()); 
      } 
      else if (view.getShipTypeComboBox().getSelectedItem() == "Cruiser") 
      { 
       view.setShipList(lists.getUSACruisers()); 
      } 
     }   
    }  
} 

oben gesagt wird ActionListener in Klasse-Controller.

public void setShipNameListener(ActionListener al) 
{ 
    comboBoxNation.addActionListener(al); 
    comboBoxShipType.addActionListener(al); 
    comboBoxShipName.addActionListener(al);  
} 

Oben ist Setter in View-Klasse.

Can't select other items from combobox

Antwort

2

Sie == nicht für Objektvergleiche verwenden. Sie verwenden nur == für primitive Vergleiche.

Verwenden Sie für Objekte die Methode equals(...).

+0

verdammt! Du warst schnell Ich wollte die gleiche Antwort posten – Frakcool

+0

Oh yeah Ich habe total vergessen, equals (...) für Strings zu verwenden. – Aesis

+0

Nun, es hat das Problem immer noch nicht gelöst. Ich kann immer noch keine Schiffe auswählen :( – Aesis