2014-01-13 1 views
0

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

Java код:

comboBox.addItemListener(new ItemListener() { 
    public void itemStateChanged(ItemEvent arg0) { 
      if(comboBox.getSelectedItem()=="apple") { 
       tfbf.setText("apple selected"); 
      } 
     } 
    }); 
+1

Ну сравнить объекты равенства с 'equals' ..' '== просто сравнивает ссылки, если они указывают на тот же объект – nachokk

ответ

5

Как вы не обеспечивают правильный пример. Вы сравниваете равенство наблюдения объекта с equals(..) не с ==.

"apple".equals(comboBox.getSelectedItem()) 

Подробнее How do I compare strings in Java?

== тесты на равенство ссылок.

.equals() тесты для равенства ценности.

+0

большое спасибо , Я решил с этим кодом – user3191435

+0

Nitpick «apple» .equals (comboBox.getSelectedItem()) избежал бы возможного NullPointerException ... +1 – MadProgrammer

+0

@MadProgrammer я ценю стиль yoda, но для этого примера я думаю, что это не обязательно, кстати, это а не 5 часов? – nachokk

3
comboBox.addItemListener(new ItemListener() { 
    public void itemStateChanged(ItemEvent arg0) 
    { 
     if(comboBox.getSelectedItem()=="apple") 
     { 
       tfbf.setText("apple selected"); 
     } 
    } 
}); 

, вероятно, лучше записать так:

comboBox.addItemListener(new ItemListener() { 
    public void itemStateChanged(ItemEvent arg0) 
    { 
     tfbf.setText(comboBox.getSelectedItem() + " selected"); 
    } 
}); 
+0

@assylias Я не понимаю вашего комментария. Вы имеете в виду меня или ОП? Конечно, я добавил тег Swing. Я предположил Swing из использования 'ItemListener'. Использует ли Java-FX функцию 'ItemListener'? –

+0

почему-то я думал, что это JavaFX ComboBox, но я ошибся! В JavaFX это будет что-то вроде: 'comboBox.addChangeListener (...)' – assylias

+0

@assylias Aah .. Должен признаться, я не совсем уверен, что это Swing. Это может быть чистый AWT для всего, что я знаю. OP - для лучшей помощи раньше, отправьте ** [MCVE] (http://stackoverflow.com/help/mcve). ** –

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