JComboBox
- JComboBox mở rộng JComponent, kết hợp text field và drop-down list cho user chọn giá trị.
- Nếu phần text field có thể edit, user nhập giá trị hoặc sửa giá trị từ drop-down.
- Mặc định user không được edit phần text field. Để cho phép edit, gọi setEditable(true).
- Tạo ActionListener, ChangeListener hoặc ItemListener khi user tác động combo box.
- Phương thức getSelectedItem() lấy item được chọn hoặc nhập từ JComboBox.
Ví dụ
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JEditableComboBoxTest extends JFrame {
public JEditableComboBoxTest() {
setTitle("JEditableComboBox Test");
setLayout(new BorderLayout());
final JComboBox combobox = new JComboBox();
final JList list = new JList(new DefaultListModel());
add(BorderLayout.NORTH, combobox);
add(BorderLayout.CENTER, list);
combobox.setEditable(true);
combobox.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent ie) {
if (ie.getStateChange() == ItemEvent.SELECTED) {
((DefaultListModel) list.getModel()).addElement(combobox.getSelectedItem());
combobox.insertItemAt(combobox.getSelectedItem(), 0);
}
}
});
setSize(new Dimension(375, 250));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) throws Exception {
new JEditableComboBoxTest();
}
}
Kết quả
