一个可以相应回车的例子import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class JComboBox8 implements ItemListener,ActionListener
{
    String[] fontsize = {"12","14","16","18","20","22","24","26","28"};
    String defaultMessage = "请选择或直接输入文字大小!";
    Font font = null;
    JComboBox combo = null;
    JLabel label = null;
    
    public JComboBox8()
    {
        JFrame f = new JFrame("JComboBox");
        Container contentPane = f.getContentPane();
        contentPane.setLayout(new GridLayout(2,1));
        label = new JLabel("Swing",JLabel.CENTER);
        font = new Font("SansSerif",Font.PLAIN,12);
        label.setFont(font);
        
        combo = new JComboBox(fontsize);
        combo.setBorder(BorderFactory.createTitledBorder("请选择你要的文字大小"));
        combo.setEditable(true);
        ComboBoxEditor editor = combo.getEditor();
        combo.configureEditor(editor, defaultMessage);
        combo.addItemListener(this);
        combo.addActionListener(this);
        
        contentPane.add(label);
        contentPane.add(combo);
        f.pack();
        f.show();
        f.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                    System.exit(0);
            }
        });
    }
    
    public static void main(String args[])
    {
        new JComboBox8();
    }
    
    public void actionPerformed(ActionEvent e)
    {
        boolean isaddItem = true;
        int fontsize = 0;
        String tmp = (String)combo.getSelectedItem();
        
        try
        {
            fontsize = Integer.parseInt(tmp);
            
            for (int i=0; i< combo.getItemCount();i++)
            {
                if (combo.getItemAt(i).equals(tmp))
                {
                    isaddItem = false;
                    break;
                }
            }
            
            if (isaddItem)
            {
                combo.insertItemAt(tmp,0);
            }
            
            font = new Font("SansSerif",Font.PLAIN,fontsize);
            label.setFont(font);
            
        }catch(NumberFormatException ne){
            combo.getEditor().setItem("您输入的值不是整数值,请重新输入!");
        }
    }
    
    public void itemStateChanged(ItemEvent e)
    {
        if(e.getStateChange() == ItemEvent.SELECTED)
        {
            int fontsize = 0;
            try
            {
                fontsize = Integer.parseInt((String)e.getItem());
                label.setText("Swing 目前字体大小:"+fontsize);
            }catch(NumberFormatException ne){
            }
        }
    }
}

解决方案 »

  1.   

    来个简单一点的:
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class test1 extends JFrame{
        static JScrollPane jScrollPane1 = new JScrollPane();
        static JComboBox jTextArea1 = new JComboBox();
        test1(){
            try {
              jbInit();
            }
            catch(Exception e) {
              e.printStackTrace();
            }
        }
          public static void main(String args[]){
              test1 t = new test1();
              t.setSize(400, 300);
              t.setVisible(true);
    }    private void jbInit() throws Exception {
            jTextArea1.addItem("dddddd");
            jTextArea1.addItem("aaaaa");
            jTextArea1.setEditable(true);
            JTextField text = (JTextField)jTextArea1.getEditor().getEditorComponent();
            text.addKeyListener(new KeyAdapter() {
                public void keyPressed(KeyEvent e) {
                    if(e.getKeyCode() == e.VK_ENTER){
                        System.out.println("reflect your enter");
                    }
                }
            });
          this.getContentPane().add(jTextArea1, BorderLayout.CENTER);
        }
    }