java swing下拉框两级联动

例如第一个下拉框选中“湖北”,则在第二个下拉框中列出“武汉,荆州,宜昌,襄樊”。第一个下拉框选中“江苏”,则在第二个下拉框中列出“南京,苏州,镇江,无锡”。等等........ 例如第一个下拉框选中“湖北”,则在第二个下拉框中列出“武汉,荆州,宜昌,襄樊”。
第一个下拉框选中“江苏”,则在第二个下拉框中列出“南京,苏州,镇江,无锡”。
等等......
请高手给出源代码
展开
 我来答
匿名用户
推荐于2018-04-09
展开全部
//:ComboBoxText.java
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JComboBox;
import javax.swing.JFrame;

public class ComboBoxText {
private String[][] xxx = {
{"浙江","杭州","温州","绍兴","舟山",},
{"江苏","南京","无锡","徐州","蒙眬",},
{"上海","闵行区","普陀区","金山区",},
};

private Object[] a(){
Object[] os = new Object[xxx.length];
for(int i=0; i<xxx.length; i++){
os[i]=xxx[i][0];
}
return os;
}

private Object[] b(Object a){
for(int i=0; i<xxx.length; i++){
if(xxx[i][0].equals(a)){
Object[] o = new Object[xxx[i].length-1];
for(int j=0; j<o.length; j++)
o[j]=xxx[i][j+1];
return o;
}
}
return new Object[]{};
}

public static void main(String[] args) {
final ComboBoxText ct = new ComboBoxText();
final JComboBox ca = new JComboBox(ct.a());
final JComboBox cb = new JComboBox();
ca.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
cb.removeAllItems();
Object selected = ca.getSelectedItem();
Object[] newItems = ct.b(selected);
for(int i=0; i<newItems.length; i++)
cb.addItem(newItems[i]);
}
});
ca.setSelectedIndex(-1);
JFrame f = new JFrame();f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().setLayout(new FlowLayout(FlowLayout.LEFT));
f.add(ca);f.add(cb);f.setVisible(true);
f.setSize(200,100);
}
}
印度软件
2009-06-10 · 贡献了超过139个回答
知道答主
回答量:139
采纳率:0%
帮助的人:0
展开全部
我这里有一个省市联动,还有注释,楼主满意吗
<html>
<head>
<title>省市级联效果</title>
<script type="text/javascript">
function changeCity() {
//获得省份
var province = document.getElementById("sltProvince").value;
//定义两个变量,代表下拉列表框的选项目(option)
var option1, option2;

//根据省份创建不同的选项
//new Option("显示的值", "value值")
switch(province) {
case "湖北省":
option1 = new Option("武汉市", "武汉市");
option2 = new Option("襄樊市", "襄樊市");
break;
case "四川省":
option1 = new Option("成都市", "成都市");
option2 = new Option("南充市", "南充市");
break;
case "广东省":
option1 = new Option("广州市", "广州市");
option2 = new Option("深圳市", "深圳市");
break;
}

//先把城市下拉框中的原有选项清空
//options:代表下拉框的选项数组
document.getElementById("sltCity").options.length = 0;

//把新创建的选项添加到城市下拉框中
document.getElementById("sltCity").options.add(option1);
document.getElementById("sltCity").options.add(option2);
}
</script>
</head>

<body>
省份:
<select id="sltProvince" onchange="changeCity();">
<option>--请选择省份--</option>
<option value="湖北省">湖北省</option>
<option value="四川省">四川省</option>
<option value="广东省">广东省</option>
</select>

<br />

城市:
<select id="sltCity">
<option>--请选择城市--</option>
</select>

</body>
</html>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友845f74e61
2009-06-10 · TA获得超过6928个赞
知道大有可为答主
回答量:4050
采纳率:50%
帮助的人:1456万
展开全部
简单的说,JComboBox有oncheange事件,在那里重亲编辑第二个JComboBox,

工作中,如果不急,周末给出代码.

楼上朋友的代码,我没有试,用的是点击事件,这样,变更第一个JComboBox,如果不点的话,第二个不会变化吧.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
10201050
2009-06-10 · TA获得超过109个赞
知道答主
回答量:358
采纳率:0%
帮助的人:165万
展开全部
不满意,楼主要的是swing的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式