设置JComboBox为可编辑
JComboBox中有a,b,c,d,e5个数
如果你选择了a,然后把a编辑为f
如何让以后的JComboBox下拉列表中,不再有a,有的是f
当然要点确定按钮后才生效
如果不点确定按钮则仍然保持原来的
package item;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ss extends JFrame implements ActionListener { Object[] values = {"a","b","c","d","e"};
JComboBox comboBox = new JComboBox(values); public static void main(String[] args) {
ss s = new ss();
s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
s.setVisible(true);
}
ss() {
JButton btnOk = new JButton("OK");
comboBox.setEditable(true);
setSize(300, 200);
JPanel p = new JPanel();
p.add(comboBox);
p.add(btnOk);
btnOk.addActionListener(this);
add(p);
} public void actionPerformed(ActionEvent e) { }
}
这是代码,会的朋友帮忙改一下吧
谢谢了

解决方案 »

  1.   

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;import javax.swing.DefaultComboBoxModel;
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextField;public class Ss extends JFrame implements ActionListener {  Object[] values = { "a", "b", "c", "d", "e" };  DefaultComboBoxModel boxmodel = new DefaultComboBoxModel(values);  JComboBox comboBox = new JComboBox(boxmodel);  public static void main(String[] args) {
        Ss s = new Ss();
        s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        s.setVisible(true);
      }  private int selectIndex = 0;  Ss() {
        JButton btnOk = new JButton("OK");
        comboBox.setEditable(true);
        setSize(300, 200);
        JPanel p = new JPanel();
        p.add(comboBox);
        p.add(btnOk);
        btnOk.addActionListener(this);
        add(p);
        comboBox.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            JComboBox cb = (JComboBox) e.getSource();
            if (cb.getSelectedIndex() >= 0) {
              selectIndex = cb.getSelectedIndex();
            }
          }
        });
      }  public void actionPerformed(ActionEvent e) {
        JTextField tf = (JTextField) comboBox.getEditor().getEditorComponent();
        values[selectIndex] = tf.getText();
        boxmodel = new DefaultComboBoxModel(values);
        comboBox.setModel(boxmodel);
        comboBox.setSelectedIndex(selectIndex);
      }
    }