java swing下拉框两级联动

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java swing下拉框两级联动相关的知识,希望对你有一定的参考价值。

例如第一个下拉框选中“湖北”,则在第二个下拉框中列出“武汉,荆州,宜昌,襄樊”。
第一个下拉框选中“江苏”,则在第二个下拉框中列出“南京,苏州,镇江,无锡”。
等等......
请高手给出源代码

//: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);

参考技术A 我这里有一个省市联动,还有注释,楼主满意吗
<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>
参考技术B 简单的说,JComboBox有oncheange事件,在那里重亲编辑第二个JComboBox,

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

楼上朋友的代码,我没有试,用的是点击事件,这样,变更第一个JComboBox,如果不点的话,第二个不会变化吧.
参考技术C 不满意,楼主要的是swing的

以上是关于java swing下拉框两级联动的主要内容,如果未能解决你的问题,请参考以下文章

Combobox下拉框两级联动

实现两级下拉框的联动

Java Swing应用程序 JComboBox下拉框联动查询

关于ligerUI下拉列表两级联动的问题

ajax_get/post_两级联动

踩iviewui中Select 选择器两级联动,重置查询条件时第二级数据无法清除的坑