JCombobox可编辑Java编程

时间:2015-02-25 07:55:09

标签: java swing jcombobox itemlistener

在我的可编辑组合框中。我想允许用户 在JComboBox中键入值的名称,如果所需的值不可用,它应显示相应的错误消息..(如JOptionPane) 我需要在这里使用getSelectedItem()吗?

这是我的代码:

    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));
    }
}

2 个答案:

答案 0 :(得分:1)

  

我想允许用户在JComboBox中键入值的名称,如果所需的值不可用,它应该显示相应的错误消息。

这没有任何意义。使用组合框的意义在于用户只能选择列表中存在的项目。

lyrics.setEditable(true);

删除上面的代码行,用户只能选择有效的项目。

答案 1 :(得分:0)

如果我没有弄错的话,您只想查看jComboBox'是否包含'您正在搜索的文字。您应该能够使用以下内容:

if(!jComboBox.contains("TEXT_TO_SEARCH") {    
    //Display error message accordingly. 
}
相关问题