java swing 级联菜单,java swing 下拉列表级联

现在第一个下拉列表只有一个选项,其它的选项看不到,求高手帮忙修改一下,第一个下拉列表选了xx系后第二个自动变成xx系的几个专业,第三个是专业的几个班

求高手啊,只有这么多分了

private void initialData() {

try {

this.initialConnection();// 初始化数据库连接

// 查询数据库获得当前用户所属学院的名称

String sql1 = "select coll_name from college where coll_id='" + coll_id + "'";// 拼装SQL语句

rs = stmt.executeQuery(sql1);// 执行查询

while (rs.next()) {// 获得数据

String coll_name = new String(rs.getString(1).getBytes("gb2312"));// 对得到信息转码

jcb[4].addItem(coll_name);// 将名称添加进下拉列表

}

rs.close();// 关闭结果集

String sql2 = "select dept_name,dept_id from dept where coll_id='" + coll_id

+ "'";// 拼装SQL语句

rs = stmt.executeQuery(sql2);// 执行查询

while (rs.next()) {// 遍历结果集

String dept_name = new String(rs.getString(1).getBytes("gb2312"));// 转码

String dept_id = rs.getString(2);// 获得名称及id

map_dept.put(dept_name, dept_id);// 放入Map

}

rs.close();// 关闭结果集

Set keyset = map_dept.keySet();// 获得键值

Iterator ii = keyset.iterator();// 得到迭代器对象

int i = 0;

String initial_dept_name = null;// 声明initial_dept_name引用

while (ii.hasNext()) {// 遍历结果集

// 根据各个专业号获得该专业班的信息存入map_class

String dept_name = (String) ii.next();

if (i == 0) {

initial_dept_name = dept_name;

}

jcb[5].addItem(dept_name);// 添加班级名称进下拉列表

String dept_id = map_dept.get(dept_name);// 获得专业号

String sql3 = "select class_id,class_name from class where dept_id='"

+ dept_id + "'";// 拼装SQL语句

rs = stmt.executeQuery(sql3);// 执行查询

Map class_map = new HashMap();// 创建班级的Map对象

while (rs.next()) {// 遍历结果集

String class_id = rs.getString(1);// 得到班级id

String class_name = new String(rs.getString(2).getBytes("gb2312"));// 转码

class_map.put(class_name, class_id);// 放入Map集合

}

rs.close();// 关闭结果集

map_class.put(dept_id, class_map);

i++;// i自加

}

this.closeConn();// 关闭数据库连接

jcb[5].setSelectedItem(initial_dept_name);// 设置各下拉列表的初始值

String initial_dept_id = map_dept.get(initial_dept_name);

Map classmap = (HashMap) map_class.get(initial_dept_id);

Set keyset1 = classmap.keySet();// 得到键值集合

Iterator ii1 = keyset1.iterator();// 得到迭代器对象

while (ii1.hasNext()) {// 将班放入下拉列表

String s = (String) ii1.next();// 得到班级名称

jcb[6].addItem(s);// 将班级添加进下拉列表

}

}

相关推荐

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值