2015-02-25 5 views
2

В моем редактируемом поле со списком. Я хочу разрешить пользователю ввести имя значения в JComboBox и отобразить соответствующее сообщение об ошибке, если желаемое значение недоступно. (Например, JOptionPane) Нужно ли здесь использовать getSelectedItem()?JCombobox Редактируемое программирование на Java

Вот мой код:

import java.awt.FlowLayout; 
    import java.awt.event.ItemEvent; 
    import java.awt.event.ItemListener; 

    import javax.swing.*; 
    public class JTunes extends JFrame implements ItemListener{ 
    private JComboBox lyrics; 
    private JTextField price; 
    double sum = 0; 
    public JTunes(){ 
     super("Lyrics"); 
     setSize(300,200); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setLayout(new FlowLayout()); 
     String[] lyrics1 = {"multiple", "data", "types", "used", "safely"}; 
     price = new JTextField(15); 
     lyrics = new JComboBox(lyrics1); 
     lyrics.setEditable(true); 

     add(lyrics); 
     add(price); 
     lyrics.addItemListener(this); 

    } 

    public void itemStateChanged(ItemEvent e){ 
     String list = (String)lyrics.getSelectedItem(); 
      if(list.equals("multiple")) 
       sum = 20; 
      else if(list.equals("data")) 
       sum = 30; 
      else if(list.equals("types")) 
       sum = 40; 
      else if(list.equals("used")) 
       sum = 50; 
      else if(list.equals("safely")) 
      sum = 60; 


      price.setText(String.valueOf(sum)); 
    } 
} 
+0

Будет ли 'lyrics.getText()', а затем сравнение с 'lyrics1' не работает? – Nfear

ответ

0

Если я не ошибаюсь, вы просто хотите увидеть, если jComboBox «содержит» текст, который Вы искали. Вы должны быть в состоянии использовать следующее:

if(!jComboBox.contains("TEXT_TO_SEARCH") {  
    //Display error message accordingly. 
} 
+0

№ Например, когда я печатаю «hello» в редактируемой combobox, он должен дать мне диалоговое окно с сообщением о том, что «Hello не найден в combobox». Поскольку в combobox нет значения «hello» –

+0

Вправо. И если в поле со списком не содержится текст, который вы ищете, тогда он может сделать именно это. Извините, если бы я был на своем компьютере, я бы попытался сделать это в NetBeans, чтобы проверить его. Я уезжаю на ночь, но если завтра у вас нет ответа, я постараюсь вам помочь. –

+0

Чтобы ответить на вопрос об использовании getSelectedItem(), я не думаю, что это вам поможет, потому что вы фактически не выбираете элемент в jComboBox. –

1

Я хочу, чтобы позволить пользователю ввести имя значения в JComboBox и он должен отображать соответствующее сообщение об ошибке, если желаемое значение не доступно.

Это не имеет никакого смысла. Точка использования комбинированного блока - это то, что пользователь может выбирать элементы только в том случае, если они существуют в списке.

lyrics.setEditable(true); 

Избавьтесь от вышеуказанной строки кода, и пользователь сможет только выбрать действительные элементы.