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


Bình luận