Swing组件JComboBox的使用实例

JComboBox是Swing中的下拉菜单控件。它永远只能选中一个项目,然而比单选按钮节省空间。如果使用setEditable设置为true则内部选项的文本可以编辑,因此这种组件被称为组合框。

- JComboBox 常用构造方法:


JComboBox(ComboBoxModel model)

JComboBox(Object[] items)

JComboBox(Vector items)

- JComboBox 常用方法:

 
int getSelectedIndex() // 获取当前选中的索引
 
Object getSelectedItem() // 获取当前选中的数据项

void addItemListener(ItemListener listener)// 添加选项选中状态改变的监听器



- 代码如下:

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

@SuppressWarnings("all")
  public class ComboBoxFrame extends JFrame {

              private JComboBox faceCombo;
              private JLabel label;
     private static final int DEFAULT_SIZE = 50;  //定义字体大小为50px
     private static final int MIN_SIZE = 20;   //定义字体大小为20px

            /**
      * Launch the application.
      */
             public static void main(String[] args) {
                 EventQueue.invokeLater(new Runnable() {
             public void run() {
                                //设置窗口规格
                                 try {
                                         ComboBoxFrame frame = new ComboBoxFrame();
                                         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                                         frame.setBounds(200, 10, 650, 700);
                                         frame.setVisible(true);
                                     } catch (Exception e) {
                                         e.printStackTrace();
                                    }
                             }
         });
             }

           /**
       * Create the frame.
       */
            //设置字体的颜色大小位置    
             public ComboBoxFrame() {
                 label = new JLabel("我爱Java! Java爱我!");
                 label.setForeground(Color.PINK);
                 label.setFont(new Font("",Font.PLAIN,DEFAULT_SIZE));
                 add(label,BorderLayout.CENTER);

                //设置下拉列表中各个选项的名字以及规格  
                 faceCombo = new JComboBox();
                 faceCombo.setFont(new Font("Serif",Font.PLAIN,MIN_SIZE));
                 faceCombo.addItem("PINK");
                 faceCombo.addItem("MAGENTA");
                 faceCombo.addItem("ORANGE");
                 faceCombo.addItem("YELLOW");
                 faceCombo.addItem("GREEN");

                //监听器,监听鼠标点击的内容来实现颜色的变化
                 faceCombo.addActionListener(new ActionListener() {

                     @Override
             public void actionPerformed(ActionEvent e) {
                                 String color =(String) faceCombo.getItemAt(faceCombo.getSelectedIndex());
                                 if(color =="PINK" )
                                      label.setForeground(Color.PINK);
                                 if(color =="MAGENTA" )
                                      label.setForeground(Color.MAGENTA);
                                 if(color =="ORANGE" )
                                     label.setForeground(Color.ORANGE);
                                 if(color =="YELLOW" )
                                     label.setForeground(Color.YELLOW);
                                 if(color =="GREEN" )
                                     label.setForeground(Color.GREEN);
                             }
         });

                 JPanel comboJPanel = new JPanel();
                 comboJPanel.add(faceCombo);
                 add(comboJPanel,BorderLayout.EAST);
                 pack();
             }

         }

- 运行结果如下
Swing组件JComboBox的使用实例_第1张图片Swing组件JComboBox的使用实例_第2张图片Swing组件JComboBox的使用实例_第3张图片Swing组件JComboBox的使用实例_第4张图片

你可能感兴趣的:(Swing组件JComboBox的使用实例)