Java下拉框的多选功能开发

   2024-10-02 3900
核心提示:在Java中实现下拉框的多选功能可以使用Swing组件中的JComboBox和JList组合实现。下面是一个简单的示例代码:import javax.swing.

在Java中实现下拉框的多选功能可以使用Swing组件中的JComboBox和JList组合实现。下面是一个简单的示例代码:

import javax.swing.*;import javax.swing.event.ListSelectionEvent;import javax.swing.event.ListSelectionListener;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class MultiSelectComboBoxExample extends JFrame {    private JComboBox<String> comboBox;    private JList<String> list;    private DefaultComboBoxModel<String> comboBoxModel;        public MultiSelectComboBoxExample() {        comboBoxModel = new DefaultComboBoxModel<>();        comboBox = new JComboBox<>(comboBoxModel);        list = new JList<>();                // 设置下拉框可编辑        comboBox.setEditable(true);        comboBox.addActionListener(new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                String selectedItem = comboBox.getSelectedItem().toString();                if (!comboBoxModel.getIndexOf(selectedItem).equals(-1)) {                    comboBoxModel.removeElement(selectedItem);                } else {                    comboBoxModel.addElement(selectedItem);                }            }        });        // 设置列表可多选        list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);        list.addListSelectionListener(new ListSelectionListener() {            @Override            public void valueChanged(ListSelectionEvent e) {                if (!e.getValueIsAdjusting()) {                    String selectedValue = list.getSelectedValue();                    if (selectedValue != null) {                        if (!comboBoxModel.getIndexOf(selectedValue).equals(-1)) {                            comboBoxModel.removeElement(selectedValue);                        } else {                            comboBoxModel.addElement(selectedValue);                        }                    }                }            }        });        // 将列表添加到下拉框的弹出窗口中        comboBox.setRenderer(new ComboBoxRenderer());        comboBox.setUI(new MetalComboBoxUI());        comboBox.addPopupComponent(list);                add(comboBox);        setSize(300, 200);        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        setLocationRelativeTo(null);        setVisible(true);    }    public static void main(String[] args) {        new MultiSelectComboBoxExample();    }    class ComboBoxRenderer extends JLabel implements ListCellRenderer<String> {        @Override        public Component getListCellRendererComponent(JList<? extends String> list, String value, int index, boolean isSelected, boolean cellHasFocus) {            setText(value);            return this;        }    }}

在上面的示例中,我们使用了JComboBox和JList组合来实现下拉框的多选功能。当用户选择下拉框中的选项时,会将选项添加或移除到ComboBoxModel中,从而实现多选功能。可以根据实际需求对下拉框和列表的样式和行为进行定制化。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号