如何使用另一个组合框摆动来控制组合框



我有两个组合框,第一个项目是(女性和男性)。我希望当用户在第一个组合框中选择女性时,女装列表将出现在第二个组合框中,当选择男性时,男装列表将出现在第二个组合框中。可以使用JCombo盒子来执行此功能吗?如果是,我该怎么做,请给我举个例子。任何帮助将不胜感激。

在如何使用组合框和如何使用列表拓扑中查看如何使用模型。根据第一个组合框中的选择 - 重建、过滤或替换第二个组合框的模型。您可以使用/扩展 DefaultComboBoxModel - JComboBox使用的默认模型。例如,考虑以下代码片段:

final JComboBox genderComboBox = null;
final JComboBox itemComboBox = null;
final DefaultComboBoxModel hisModel = new DefaultComboBoxModel(new String[]{"a", "b", "c"});
final DefaultComboBoxModel herModel = new DefaultComboBoxModel(new String[]{"x", "y", "z"});
genderComboBox.addActionListener (new ActionListener () {
    public void actionPerformed(ActionEvent e) {
        if ("Men".equals(genderComboBox.getSelectedItem())){
            itemComboBox.setModel(hisModel);    
        } else {
            itemComboBox.setModel(herModel);    
        }
    }
});

或者,在第一个组合中选择后,您可以手动重建第二个组合中的项目,即:使用JComboBox方法removeAllItems()addItem()

您必须将事件侦听器添加到第一个组合框中。这样,您将知道当它的选择发生变化时,您可以询问它并用适当的数据填充您的第二个组合框。

更多信息请见 http://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html#listeners

最新更新