91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

Java下拉框的多選功能開發

小樊
111
2024-08-07 03:23:28
欄目: 編程語言

在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中,從而實現多選功能。可以根據實際需求對下拉框和列表的樣式和行為進行定制化。

0
灵川县| 保德县| 长丰县| 临江市| 阿拉善左旗| 丽水市| 钦州市| 湾仔区| 华安县| 孟村| 怀来县| 普宁市| 芮城县| 临海市| 错那县| 清河县| 颍上县| 彭山县| 明光市| 金山区| 岱山县| 邮箱| 鹤庆县| 合山市| 横峰县| 昆山市| 河北区| 裕民县| 汤阴县| 静乐县| 威信县| 庄河市| 九寨沟县| 祁门县| 富民县| 绥滨县| 迁安市| 卢湾区| 湖南省| 贵港市| 嘉禾县|