温馨提示×

Java下拉框的分组显示

小樊
84
2024-08-07 03:22:24
栏目: 编程语言

在Java中,可以使用Swing库中的JComboBox和JList来实现下拉框的分组显示。以下是一个简单的示例代码:

import javax.swing.*;
import java.awt.*;
import java.util.HashMap;
import java.util.Map;

public class GroupedComboBoxExample extends JFrame {

    private Map<String, String[]> groupedItems;

    public GroupedComboBoxExample() {
        groupedItems = new HashMap<>();
        groupedItems.put("Fruits", new String[]{"Apple", "Banana", "Orange"});
        groupedItems.put("Vegetables", new String[]{"Carrot", "Tomato", "Broccoli"});

        JComboBox<String> comboBox = new JComboBox<>();
        DefaultComboBoxModel<String> model = new DefaultComboBoxModel<>();
        for (String group : groupedItems.keySet()) {
            model.addElement(group);
            for (String item : groupedItems.get(group)) {
                model.addElement("   " + item);
            }
        }
        comboBox.setModel(model);

        setLayout(new FlowLayout());
        add(comboBox);

        setSize(300, 200);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }

    public static void main(String[] args) {
        new GroupedComboBoxExample();
    }
}

在这个示例中,我们首先创建了一个HashMap来存储分组信息,然后使用DefaultComboBoxModel来设置JComboBox的模型。在模型中,我们先添加分组的名称,然后再添加对应分组的子项,通过在子项前添加空格来实现缩进显示。

运行上面的代码,将会显示一个带有分组显示的下拉框,类似于这样:

Fruits
   Apple
   Banana
   Orange
Vegetables
   Carrot
   Tomato
   Broccoli

0