JList 顯示多行可選項,支持單選、多選模式(ListSelectionModel),需配合 JScrollPane 實現滾動。選擇事件通過 ListSelectionListener 監聽。JComboBox 結合輸入框與下拉列表,可編輯(setEditable(true)),事件分為 ItemListener(選項變更)與 ActionListener(輸入確認)。
// JList 範例
String[] fruits = {"蘋果", "香蕉", "橘子"};
JList list = new JList<>(fruits);
list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
list.addListSelectionListener(e -> {
if (!e.getValueIsAdjusting()) {
List selected = list.getSelectedValuesList();
System.out.println("選中: " + selected);
}
});
panel.add(new JScrollPane(list));
// JComboBox 範例
JComboBox combo = new JComboBox<>(fruits);
combo.setEditable(true);
combo.addActionListener(e -> System.out.println("選擇: " + combo.getSelectedItem()));
panel.add(combo);
兩者均支持動態增刪項目(DefaultListModel/DefaultComboBoxModel),適合表單選擇、下拉過濾等場景。