【问题标题】:How to make visible another combo box on selection of a value in current combo box in java swing using netbeans 7java - 如何使用netbeans 7在java swing中的当前组合框中选择一个值时使另一个组合框可见
【发布时间】:2014-01-16 10:28:14
【问题描述】:

如何使用 netbeans 7 在 java swing 中的当前组合框中选择一个值时使另一个组合框可见。假设我有一个标签名称国家,然后从组合框中选择一个国家(印度)1,然后我需要另一个组合框(组合框2)出现与国家(印度)相关的州,我将从我的数据库中检索值。

【问题讨论】:

  • 向我们展示您的尝试。您在哪个部分有问题?
  • 与其让组合框凭空出现让用户感到惊讶,不如禁用它,除非从第一个组合框中选择了某个值。这样一来,用户就可以知道数据会发生什么。

标签: java swing jcombobox


【解决方案1】:

试试这个例子并替换你的数据:

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JFrame;

public class Main {
    public static void main(String args[]) {
        final String[] mainData = { "-Select-", "Sel 1", "Sel 2", "Sel 3" };
        final String[] subData1 = { "Sub Sel 11", "Sub Sel 12", "Sub Sel 13" };
        final String[] subData2 = { "Sub Sel 21", "Sub Sel 22", "Sub Sel 23" };
        final String[] subData3 = { "Sub Sel 31", "Sub Sel 32", "Sub Sel 33" };
        final DefaultComboBoxModel boxModel;
        final JComboBox box1, box2;
        JFrame frame = new JFrame("Demo Frame/SuRu");
        Container contentPane = frame.getContentPane();
        box1 = new JComboBox(mainData);
        box2 = new JComboBox();
        contentPane.setLayout(new FlowLayout());
        contentPane.add(box1);
        contentPane.add(box2);
        box2.setVisible(false);
        boxModel = new DefaultComboBoxModel();
        box2.setModel(boxModel);
        frame.setBounds(200, 200, 500, 200);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);

        box1.addItemListener(new ItemListener() {

            @Override
            public void itemStateChanged(ItemEvent arg0) {
                box2.setVisible(true);
                boxModel.removeAllElements();
                if (box1.getSelectedIndex() == 0) {
                    box2.setVisible(false);
                } else if (box1.getSelectedIndex() == 1) {
                    for (String s : subData1) {
                        boxModel.addElement(s);
                    }
                } else if (box1.getSelectedIndex() == 2) {
                    for (String s : subData2) {
                        boxModel.addElement(s);
                    }
                } else if (box1.getSelectedIndex() == 3) {
                    for (String s : subData3) {
                        boxModel.addElement(s);
                    }
                }

            }
        });
    }
}

【讨论】:

    猜你喜欢
    • 2013-05-22
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多