Lớp JComboBox trong Java Swing 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
Nội dung chính
- Lớp này kế thừa các phương thức từ các lớp sau:
- Lớp JComboBox bao gồm các trường sau:
- Các constructor được sử dụng phổ biến của lớp JComboBox
- Các phương thức được sử dụng phổ biến của lớp JComboBox
- Chương trình ví dụ đơn giản đầu tiên về lớp JComboBox trong Java Swing
- Một chương trình khác về lớp JComboBox
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
package vn.kienthuclaptrinh.swing; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; public class JComboBoxExam1 { JFrame f; JComboBoxExam1() { f = new JFrame("Vi du combobox - java swing"); String city[] = { "Ha Noi", "Vinh Phuc", "Da Nang", "TP. Ho Chi Minh", "Nha Trang" }; JComboBox cb = new JComboBox(city); cb.setBounds(100, 50, 150, 20); f.add(cb); JLabel cityLabel = new JLabel("City: "); cityLabel.setBounds(50, 50, 80, 20); f.add(cityLabel); f.setLayout(null); f.setSize(400, 300); f.setVisible(true); } public static void main(String[] args) { new JComboBoxExam1(); } }
Chạy chương trình trên cho kết quả như sau:
Một chương trình khác về lớp JComboBox
package vn.kienthuclaptrinh.swing; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.DefaultComboBoxModel; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; public class JComboBoxExam2 { private JFrame mainFrame; private JLabel headerLabel; private JLabel statusLabel; private JPanel controlPanel; public JComboBoxExam2(){ prepareGUI(); } public static void main(String[] args) { JComboBoxExam2 swingDemo = new JComboBoxExam2(); swingDemo.showComboboxDemo(); } private void prepareGUI() { mainFrame = new JFrame("Vi du combobox - 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 cityName = new DefaultComboBoxModel(); cityName.addElement("Ha Noi"); cityName.addElement("TP. HCM"); cityName.addElement("Da Nang"); cityName.addElement("Hai Phong"); final JComboBox fruitCombo = new JComboBox(cityName); 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 = "City Selected: " + fruitCombo.getItemAt( fruitCombo.getSelectedIndex()); } statusLabel.setText(data); } }); controlPanel.add(fruitListScrollPane); controlPanel.add(showButton); mainFrame.setVisible(true); } }
Chạy chương trình trên cho kết quả như sau: