【问题标题】:how to control a combo box by using another combo box swing如何通过使用另一个组合框摆动来控制组合框
【发布时间】:2012-05-09 05:12:41
【问题描述】:

我有两个组合框的物品第一个是(女性和男人)。我想要当用户在第一个组合盒中选择女性时,女装的衣服列表将出现在第二个组合盒中,当男人被选中男士礼服列表时将出现在第二个中。可以使用 JCombo 框执行此功能吗?如果是的话,我该怎么做,请给我一个例子。 任何帮助将不胜感激。

【问题讨论】:

    标签: java swing


    【解决方案1】:

    How to Use Combo BoxesHow to Use Lists totorials 中查看如何使用模型。根据第一个组合框中的选择 - 重建、过滤或替换第二个组合框的模型。您可以使用/扩展DefaultComboBoxModel - JComboBox 使用的默认模型。例如考虑这个 sn-p:

    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()

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2013-02-21
        • 2017-10-10
        • 1970-01-01
        • 1970-01-01
        • 2014-07-01
        • 1970-01-01
        • 2013-04-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多