2016-06-26 5 views
0

Я внедрил ActionListener, чтобы список моего корабля изменился в зависимости от страны и типа корабля, но проблема в том, что я не могу выбрать какие-либо корабли.Невозможно выбрать элемент из combobox

Какие-либо идеи о том, где я, возможно, ошибся?

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()); 
      } 
     }   
    }  
} 

Выше сказано в классе контроллера ActionListener.

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

Выше setter в классе вида.

Can't select other items from combobox

ответ

2

Не используйте == для сравнения объектов. Вы используете только == для примитивных сравнений.

Для объектов используйте метод equals(...).

+0

черт побери! Вы были быстры, я собирался опубликовать тот же ответ – Frakcool

+0

О да, я полностью забыл об использовании equals (...) для Strings. – Aesis

+0

Ну, это еще не решило проблему. Я все еще не могу выбрать любые корабли :( – Aesis

Смежные вопросы