选择列表2取决于选择列表1

时间:2014-04-08 09:29:34

标签: java html jsp

我正在制作界面,而且我使用了两个选择列表,其中选择列表1中的输入将决定选择列表2的选项。

〔实施例:

选择列表一:GSM, CDMA

然后,

如果用户选择GSM,他应该在选择CRICKET, RADIO, HOROSCOPE中看到list 2。或者,如果用户选择CDMA,他应该会在选择COMBO OFFER, VOICE CHAT, WIN THE DREAM

中看到list 2

任何人都可以帮帮我吗?

这是代码

<tr>
<td style="color:white"> <font size="2"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SERVICE :</b></font> </td>
<td><select name="service" >
<option value="GSM">GSM</option>
<option value="CDMA">CDMA</option>
<option value="VIRGIN MOBILE">VIRGIN MOBILE</option>
</select>
</td>


<td style="color:white"> <font size="2"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VAS :</b></font> </td>
<td><select name="service" >
<option value="COMBO OFFER">COMBO OFFER</option>
<option value="COMBO OFFER CDMA">COMBO OFFER CDMA</option>
<option value="WIN THE DREAM">WIN THE DREAM</option>
<option value="VOICE CHAT">VOICE CHAT</option>
<option value="CRICKET">CRICKET</option>
<option value="ASTRO">ASTRO</option>
</select>
</td>
</tr>

假设,如果在第一个选择列表中选择了GSM,我需要COMBO OFFER,在第二个列表中赢取梦想和CRICKET。 如果在第一个列表中选择了CDMA,则COMBO提供CDMA,VOICE CHAT和ASTRO 我们怎么做?

1 个答案:

答案 0 :(得分:0)

您可以将第二个列表项保存在字符串数组数组中:

String[][] listContent = {
        {"CRICKET", "RADIO", "HOROSCOPE"},
        {"COMBO OFFER", "VOICE CHAT", "WIN THE DREAM"},
};


然后,您的第一个列表需要更新第二个列表项,如下所示:

list1.addActionListener(e -> {
    list2.removeAllItems();
    Stream.of(listContent[list1.getSelectedIndex()]).forEach(list2::addItem);
});



一个例子(测试):

public static void main(String[] args) {
    String[][] listContent = {
            {"CRICKET", "RADIO", "HOROSCOPE"},
            {"COMBO OFFER", "VOICE CHAT", "WIN THE DREAM"},
    };

    JFrame wnd = new JFrame();
    wnd.setLocation(200, 200);
    wnd.setSize(200, 120);
    wnd.setLayout(null);
    wnd.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

    JComboBox<String> list1 = new JComboBox<>();
    list1.setLocation(10, 10);
    list1.setSize(150, 25);
    wnd.add(list1);

    JComboBox<String> list2 = new JComboBox<>();
    list2.setLocation(10, 40);
    list2.setSize(150, 25);
    wnd.add(list2);

    wnd.setVisible(true);

    list1.addItem("GSM");
    list1.addItem("CDMA");

    list1.addActionListener(e -> {
        list2.removeAllItems();
        Stream.of(listContent[list1.getSelectedIndex()]).forEach(list2::addItem);
    });
}