JComboBox的问题,着急啊! 首先,你上面的代码中,到底是给cmbBrand做操作,还是cmbGoodBrand????如果是前者,好像cmbBrand里面,一个item也没有,当然选不重了!如果是后者,你并没有setSelectedIndex(0)噢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 变量搞混了,cmbBrand,cmbGoodBrand //**********************************************************************cmbGoodsBrand.addItem(argGoodsBrand);不好意思,这里是我刚才加注释时写错了,实际代码里还是cmbBrand.错误不在这里.....//********************************************************************** 我是初学,来学习的,我认为是这里错了:strGoodsType = (String)cmbType.getSelectedItem();改为:strGoodsType = String.valueOf(cmbType.getSelectedItem());我不知道对不对,错了的话,不要骂我啊 TO: ravenkatte(雨过云舒) 首先谢谢你的回答.我想你可能没看清我的问题,你的回答跟我的问题不是一回事.希望你能认真的看一下我的问题,并希望能够给我正确的答案.谢谢.对了,顺便提醒一下,为什么我在strGoodsType = (String)cmbType.getSelectedItem();这里不用String.valueOf()呢!因为cmbType.getSelectedItem()这个方法反回的是个Object类型的对象,所以这里用了强制转型。你试想一下,如果这个方法反回是null,那用String.valueOf()不就出错了吗? 楼主,之所以给你第二个选择匡是空的错觉是因为你的事件为focusLost,那就是代码会在第一个选择匡丢失焦点的时候才会初始化第二个匡。建议你用StateChanged()的事件来操作,就行了 TO: happyegg(为了灌水而灌水) StateChanged()是swing里面的事件,怎样给JComboBox注册呢?这里要实现的是当单击第一个列表框时从数据库中查找相应的值插入第二个列表框并将第一个值显示出来.请指教.谢谢! 我使用的是JBuilder,所以所有的事件都是自动生成的:)。你可以参照如下代码。jComboBox1对应你的第一个列表框jComboBox2对应你的第二个列表框在你的init函数里面 public void init() { jComboBox1.addFocusListener(new java.awt.event.FocusAdapter() { public void focusLost(FocusEvent e) { jComboBox1_focusLost(e); } }); jComboBox1.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(ItemEvent e) { jComboBox1_itemStateChanged(e); } }); }然后添加如下函数,这里我把focusLost也放过来,给你做个参照 void jComboBox1_itemStateChanged(ItemEvent e) { jComboBox2.removeAllItems(); String strGoodsType = (String)jComboBox1.getSelectedItem(); System.out.println("selected is : " + strGoodsType); jComboBox2.addItem("asdasd"); jComboBox2.addItem("asdasd2"); jComboBox2.addItem("asdasd3"); jComboBox2.setSelectedIndex(0); } void jComboBox1_focusLost(FocusEvent e) { jComboBox2.removeAllItems(); String strGoodsType = (String)jComboBox1.getSelectedItem(); System.out.println("selected is : " + strGoodsType); jComboBox2.addItem("asdasd"); jComboBox2.addItem("asdasd2"); jComboBox2.addItem("asdasd3"); jComboBox2.setSelectedIndex(0); } TO : happyegg(为了灌水而灌水) 我试过了,其实是一样的,现在我找到问题的所在了,就是这三个JComboBox控件都是放在JTable里面的.如果把三个JComboBox控件放在窗体里面的话,就没问题了.这里面的原因我也不清楚,目前还没找到解决的办法,请有过类似经验的朋友伸出援助之手,在下定高分相增...... java 位运算怎么学习 关于数字字符串的正则表达式问题,有点难度 怎样在jinternalframe里面内嵌一个浏览器? Socket数据的显示,在线等!!! servlet乱码问题 新手,碰见个问题 谁有 良葛格Java JDK 5.0学习笔记 完整版本 求指路! 100分求解一问(用过sourcesafe的达人进) 新手求救!!高分!!!! JTABLE中列单元事件处理问题 时间转换问题???
cmbGoodsBrand.addItem(argGoodsBrand);
不好意思,这里是我刚才加注释时写错了,实际代码里还是cmbBrand.错误不在这里.....
//**********************************************************************
首先谢谢你的回答.
我想你可能没看清我的问题,你的回答跟我的问题不是一回事.希望你能认真的看一下我的问题,并希望能够给我正确的答案.谢谢.
对了,顺便提醒一下,为什么我在strGoodsType = (String)cmbType.getSelectedItem();这里不用String.valueOf()呢!因为cmbType.getSelectedItem()这个方法反回的是个Object类型的对象,所以这里用了强制转型。你试想一下,如果这个方法反回是null,那用String.valueOf()不就出错了吗?
建议你用StateChanged()的事件来操作,就行了
StateChanged()是swing里面的事件,怎样给JComboBox注册呢?这里要实现的是当单击第一个列表框时从数据库中查找相应的值插入第二个列表框并将第一个值显示出来.请指教.谢谢!
jComboBox1对应你的第一个列表框
jComboBox2对应你的第二个列表框在你的init函数里面
public void init() {
jComboBox1.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusLost(FocusEvent e) {
jComboBox1_focusLost(e);
}
});
jComboBox1.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(ItemEvent e) {
jComboBox1_itemStateChanged(e);
}
});
}
然后添加如下函数,这里我把focusLost也放过来,给你做个参照
void jComboBox1_itemStateChanged(ItemEvent e) {
jComboBox2.removeAllItems();
String strGoodsType = (String)jComboBox1.getSelectedItem();
System.out.println("selected is : " + strGoodsType);
jComboBox2.addItem("asdasd");
jComboBox2.addItem("asdasd2");
jComboBox2.addItem("asdasd3");
jComboBox2.setSelectedIndex(0);
} void jComboBox1_focusLost(FocusEvent e) {
jComboBox2.removeAllItems();
String strGoodsType = (String)jComboBox1.getSelectedItem();
System.out.println("selected is : " + strGoodsType);
jComboBox2.addItem("asdasd");
jComboBox2.addItem("asdasd2");
jComboBox2.addItem("asdasd3");
jComboBox2.setSelectedIndex(0);
}
我试过了,其实是一样的,现在我找到问题的所在了,就是这三个JComboBox控件都是放在JTable里面的.如果把三个JComboBox控件放在窗体里面的话,就没问题了.这里面的原因我也不清楚,目前还没找到解决的办法,请有过类似经验的朋友伸出援助之手,在下定高分相增......