2016-04-03 2 views
-1

Я создал JComboBox, который заполняется арраистом строк. Мой comboBox правильно заполняется так, как я хочу. Моя проблема возникает при получении выбранного элемента: когда я печатаю его в btnGo.addActionListener, я понимаю, что он всегда один и тот же, хотя я меняю выделение и снова нажимаю «Перейти». Есть ли способ сделать выбор действительно измененным? И могу ли я сделать то же самое, не нажав «Перейти»? Как только выбираете элемент из comboBox и немедленно выполняете действие.Выбранный элемент из comboBox всегда один и тот же

Это, как я могу проверить, что элемент становится выбран:

String selected = comboBox.getSelectedItem().toString(); 

А потом я печатаю selected в btnGo.addActionListener

+2

Чтобы получить удовлетворительный ответ, вы, скорее всего, захотите создать и опубликовать достойный [mcve]. Пожалуйста, прочитайте ссылку, чтобы узнать, что это. –

+2

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

+3

[Как использовать combobox] (https://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html) и [Как написать ActionListener] (https://docs.oracle.com/ javase/tutorial/uiswing/events/actionlistener.html) может быть хорошим началом – MadProgrammer

ответ

2

да это можно выполнить действие при выборе выпадающий элемент. Вам просто нужно добавить ActionListener в свой comboBox; здесь приведен пример кода:

comboBox.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent event) { 
      JComboBox comboBox = (JComboBox) event.getSource(); 

      Object selected = comboBox.getSelectedItem(); 
      if(selected.toString().equals("item1")) 
      field.setText("AA"); 
      else if(selected.toString().equals("item2")) 
       field.setText("BB"); 

     } 
    }); 
    getContentPane().add(comboBox); 
    getContentPane().add(field); 
} 

Пожалуйста, поделитесь исходным кодом, чтобы помочь вам с выбором.

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