| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 998 人关注过本帖
标题:JAVA里多个下拉列表相联系的问题
只看楼主 加入收藏
牛腩
Rank: 3Rank: 3
来 自:南宁
等 级:论坛游侠
威 望:1
帖 子:59
专家分:161
注 册:2007-6-3
收藏
 问题点数:0 回复次数:2 
JAVA里多个下拉列表相联系的问题

数据库里有二个表:①专业表:专业ID,专业名;②班级表:班级ID,班级名,专业ID;

现在我用SWING做了一个界面,二个下拉列表,一个文本框,下拉列表一的值为各专业ID,下拉列表二的的值为(根据专业ID选出的班级ID),文本框的值为(根据班级ID选出的班级名),


现在我抛开文本框不管,只做(根据专业ID选出的班级ID),给下拉列表一加个监听器,改变下拉列表一的值,下拉列表二的值也会根着改变,这我是做成功了,然后我再加上个文本框,给下拉列表二加个监听器后,运行时如果第一次你不改变下拉列表一的值的话,只是改变下拉列表二的值,那文本框里的内容是能显示出(根据班级ID选出的班级名),可是一改变下拉列表一的值的话,就会产生一个空指针异常,请问应该怎么解决啊?下面是二个下拉列表监听的内容:

public void cbobj_id_actionPerformed(ActionEvent e) {
String name = null;
String str_bj_id = cbobj_id.getSelectedItem().toString();//空指针异常出现在这一行
int bj_id = Integer.parseInt(str_bj_id);
Vector temp = db.query(
"select banji_name from banji where banji_id=" + bj_id);
for (int i = 0; i < temp.size(); i++) {
Vector onename = (Vector) temp.elementAt(i);
name = (String) onename.elementAt(0);
}
txtbj_name.setText(name);

}

public void cbozy_id_actionPerformed(ActionEvent e) {
String str_zy_id = cbozy_id.getSelectedItem().toString();
int zy_id = Integer.parseInt(str_zy_id);
cbobj_id.removeAllItems();

Vector bj_id = db.query("select banji_id from banji where zy_id=" +
zy_id); //班级编号的下拉列表
for (int i = 0; i < bj_id.size(); i++) {
Vector oneid = (Vector) bj_id.elementAt(i);
cbobj_id.addItem(oneid.elementAt(0));
}
cbobj_id.removeActionListener(cbobj_id.getAction());//试过重新注册监听器,但也不管用
cbobj_id.addActionListener(new insert_bj_Dialog_cbobj_id_actionAdapter(this));
}

请各位朋友多多指教一下哦。。。

搜索更多相关主题的帖子: JAVA 里多 列表 联系 
2007-06-10 16:42
pity1115
Rank: 1
等 级:新手上路
威 望:2
帖 子:184
专家分:0
注 册:2006-9-15
收藏
得分:0 

 public void cbobj_id_actionPerformed(ActionEvent e) {
String name = null;
String str_bj_id = cbobj_id.getSelectedItem().toString();//空指针异常出现在这一行
//这里你应该判断一下cbobj_id里面是否有item,用getItemCount()这个方法,判断返回的结果是否大于0,
//因为你在另一个监听器里把所有的item都删除了,在添加其它的item之前,现在这个监听器就会被调用,就会出现异常.


int bj_id = Integer.parseInt(str_bj_id);
Vector temp = db.query(
\"select banji_name from banji where banji_id=\" + bj_id);
for (int i = 0; i < temp.size(); i++) {
Vector onename = (Vector) temp.elementAt(i);
name = (String) onename.elementAt(0);
}
txtbj_name.setText(name);

}


2007-06-10 17:28
牛腩
Rank: 3Rank: 3
来 自:南宁
等 级:论坛游侠
威 望:1
帖 子:59
专家分:161
注 册:2007-6-3
收藏
得分:0 
多谢,现在我正在做JAVA的毕业设计的,目标是做个比较简单的学生信息管理系统,C/S结构,上面这位朋友终于把我的最后一个问题解决啦。。。
2007-06-10 20:26
快速回复:JAVA里多个下拉列表相联系的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018362 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved