2015-07-16 5 views
1

Я хочу изменить функциональность кнопок в соответствии с JComboBox.JComboBox Listener

Например, когда я выбираю сингулярные и множественные существительные, поведение кнопок должно изменяться на этот элемент, и когда я выбираю другой элемент из JComboBox, кнопки кнопок должны соответственно меняться.

+2

Maybe [Как использовать Combo Boxes ] (http://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html) поможет ... – MadProgrammer

+0

Экшн-слушатели - одна из первых вещей, которые вы узнаете, когда начинаете работать с графическим интерфейсом. Если вы используете построитель для вашего графического интерфейса, вы можете подключить прослушиватель действий всего за несколько кликов. – Mackiavelli

ответ

1

Вы можете добавить слушатель в поле со списком:

//In your class 
comboList.addActionListener(this); 

Тогда в ActionPerformed вы можете изменить слушателя кнопки нужной функциональности:

//In your class 
JButton btn1 = new JButton("Button1"); 

-------------------------------------------------------- 

// Your actionPerformed for combo box listener 
public void actionPerformed(ActionEvent e) { 
     JComboBox cb = (JComboBox)e.getSource(); 
     String itemName = (String)cb.getSelectedItem(); 
     if(itemName.equals("str"){ 

      //checking if you are not adding listener twice 
      if(btn1.getActionListeners().length > 0){ 
       //remove all the existing listener, iterate and remove if more than one 
       btn1.removeActionListener(existingListener);      
      } 
      btn1.addActionListener(new ButtonListener1()); 
     } 
     if(itemName.equals("str2"){ 
      //follow same process as for above if 
     } 
    }