我正在制作界面,而且我使用了两个选择列表,其中选择列表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> 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> 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 我们怎么做?
答案 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);
});
}