2016-02-16 2 views
0

Я тестировал Listener с JButton, и это сработало, но я не могу понять, почему он не будет делать то, что я хочу, в поле со списком. Я хочу, чтобы он выполнял другое действие, основанное на выборе пользователей из combobox. например когда пользователь выбирает USA, ожидаемое поведение заключается в закрытии окна графического интерфейса пользователя.Слушатель на JComboBox не подбирает выбор

public class AccountListTest extends JFrame implements ActionListener{ 

    public JComboBox combo; 

    AccountListTest() 
    { 
     JFrame myframe = new JFrame(); 
     myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     JPanel mypanel = new JPanel(); 

     String [] country = {"USA","Ireland"}; 


     //JComboBox combo = new JComboBox(); 
     myframe.setSize(450,300); 

     combo = new JComboBox(country); 
     combo.addActionListener(this); 

     mypanel.add(combo , BorderLayout.PAGE_END); 

     myframe.add(mypanel); 


     myframe.setVisible(true); 
     AddressFactory afactory = new AddressFactory(); 

     //afactory.getAccountList(USA).display(); 
     //afactory.getAccountList(Ireland).display(); 

     combo.addActionListener(this); 

     myframe.add(mypanel); 
     myframe.setVisible(true); 


    } 


    public static void main (String[] args) 
    { 
     new AccountListTest(); 

    } 

    public void actionPerformed(ActionEvent e) { 
     Object originator = e.getSource(); 

     if(e.getActionCommand().equals("USA")) 
     { 
      System.exit(0); 
     } 
     else if(e.getActionCommand().equals("Ireland")) 
     { 
      System.out.println("IRL SEL"); 
     } 
     // TODO Auto-generated method stub 

    } 
} 
+0

Возможный дубликат [? JComboBox Выбор Изменить Слушатель] (http://stackoverflow.com/questions/58939/ jcombobox-selection-change-listener) – 3kings

ответ

0

Try с получением строки комбо, когда actionPerformed является triggerd:

public void actionPerformed(ActionEvent e) { 
     String selectedValue = combo.getSelectedValue().toString(); 
     if("USA".equalsIgnoreCase(selectedValue)) 
     { 
      //Do Something for USA 
     } 
     else if("Ireland".equalsIgnoreCase(selectedValue)) 
     { 
      //Do something irish 
     } 
     // TODO Auto-generated method stub 

    } 
+0

Perfect Works Большое спасибо –