Lớp JComboBox trong Java Swing



Lớp JComboBox là một thành phần mà kết hợp một button, một trường có thể chỉnh sửa và một drop-down list. Tại một thời điểm chỉ có một item có thể được lựa chọn từ list. Cú pháp khai báo cho lớp javax.swing.JComboBox là:

public class JComboBox
   extends JComponent
      implements ItemSelectable, ListDataListener, 
         ActionListener, Accessible

Lớp này kế thừa các phương thức từ các lớp sau:

  • javax.swing.JComponent

  • java.awt.Container

  • java.awt.Component

  • java.lang.Object

Lớp JComboBox bao gồm các trường sau:

  • protected String actionCommand

  • protected ComboBoxModel dataModel

  • protected ComboBoxEditor editor

  • protected boolean isEditable

  • protected JComboBox.KeySelectionManager keySelectionManager

  • protected boolean lightWeightPopupEnabled

  • protected int maximumRowCount

  • protected ListCellRenderer renderer

  • protected Object selectedItemReminder

Các constructor được sử dụng phổ biến của lớp JComboBox

JComboBox(): Tạo một JComboBox với data model mặc định.

JComboBox(Object[] items): Tạo một JComboBox mà chứa các phần tử trong mảng đã cho.

JComboBox(Vector items): Tạo một JComboBox mà chứa các phần tử trong Vector đã cho.

Các phương thức được sử dụng phổ biến của lớp JComboBox

public void addItem(Object anObject): được sử dụng để thêm một item tới list.

public void removeItem(Object anObject): được sử dụng để xóa một item từ list.

public void removeAllItems(): được sử dụng để xóa tất cả item từ list.

public void setEditable(boolean b): được sử dụng để xác định xem có hay không JComboBox là editable.

public void addActionListener(ActionListener a): được sử dụng để thêm ActionListener.

public void addItemListener(ItemListener i): được sử dụng để thêm ItemListener.

Chương trình ví dụ đơn giản đầu tiên về lớp JComboBox trong Java Swing

import javax.swing.*;  
public class Combo {  
JFrame f;  
Combo(){  
    f=new JFrame("Combo ex");  
      
    String country[]={"India","Aus","U.S.A","England","Newzeland"};  
      
    JComboBox cb=new JComboBox(country);  
    cb.setBounds(50, 50,90,20);  
    f.add(cb);  
      
    f.setLayout(null);  
    f.setSize(400,500);  
    f.setVisible(true);  
      
}  
public static void main(String[] args) {  
    new Combo();  
      
}  
}  

Một chương trình khác về lớp JComboBox

package com.vietjack.gui;
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
public class SwingControlDemo {
    
   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel;   public SwingControlDemo(){
      prepareGUI();
   }   public static void main(String[] args){
      SwingControlDemo  swingControlDemo = new SwingControlDemo();      
      swingControlDemo.showComboboxDemo();
   }   private void prepareGUI(){
      mainFrame = new JFrame("Vi du Java Swing");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new JLabel("", JLabel.CENTER);        
      statusLabel = new JLabel("",JLabel.CENTER);          statusLabel.setSize(350,100);      controlPanel = new JPanel();
      controlPanel.setLayout(new FlowLayout());      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }   private void showComboboxDemo(){                                    
      headerLabel.setText("Control in action: JComboBox");       final DefaultComboBoxModel fruitsName = new DefaultComboBoxModel();      fruitsName.addElement("Apple");
      fruitsName.addElement("Grapes");
      fruitsName.addElement("Mango");
      fruitsName.addElement("Peer");      final JComboBox fruitCombo = new JComboBox(fruitsName);    
      fruitCombo.setSelectedIndex(0);      JScrollPane fruitListScrollPane = new JScrollPane(fruitCombo);          JButton showButton = new JButton("Show");      showButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) { 
            String data = "";
            if (fruitCombo.getSelectedIndex() != -1) {                     
               data = "Fruits Selected: " 
                  + fruitCombo.getItemAt
                    (fruitCombo.getSelectedIndex());             
            }              
            statusLabel.setText(data);
         }
      }); 
      controlPanel.add(fruitListScrollPane);          
      controlPanel.add(showButton);    
      mainFrame.setVisible(true);             
   }
}

swing_control_trong_java_swing.jsp