在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