java swing下拉框两级联动
例如第一个下拉框选中“湖北”,则在第二个下拉框中列出“武汉,荆州,宜昌,襄樊”。第一个下拉框选中“江苏”,则在第二个下拉框中列出“南京,苏州,镇江,无锡”。等等........
例如第一个下拉框选中“湖北”,则在第二个下拉框中列出“武汉,荆州,宜昌,襄樊”。
第一个下拉框选中“江苏”,则在第二个下拉框中列出“南京,苏州,镇江,无锡”。
等等......
请高手给出源代码 展开
第一个下拉框选中“江苏”,则在第二个下拉框中列出“南京,苏州,镇江,无锡”。
等等......
请高手给出源代码 展开
4个回答
推荐于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);
}
}
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);
}
}
展开全部
我这里有一个省市联动,还有注释,楼主满意吗
<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>
<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>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
简单的说,JComboBox有oncheange事件,在那里重亲编辑第二个JComboBox,
工作中,如果不急,周末给出代码.
楼上朋友的代码,我没有试,用的是点击事件,这样,变更第一个JComboBox,如果不点的话,第二个不会变化吧.
工作中,如果不急,周末给出代码.
楼上朋友的代码,我没有试,用的是点击事件,这样,变更第一个JComboBox,如果不点的话,第二个不会变化吧.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不满意,楼主要的是swing的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询