JcomboBox 仅显示一项
Posted
技术标签:
【中文标题】JcomboBox 仅显示一项【英文标题】:JcomboBox showing only one item 【发布时间】:2012-05-29 16:09:45 【问题描述】:我的代码有什么问题?即使数据库中有更多项目,第二个 JcomboBox 也仅显示一项。 这是它应该如何工作的: 第一个 JcomboBox 填充数据库中的数据,取决于用户对第一个组合框的选择,第二个填充,然后一些 Jlabel 填充数据,具体取决于从第二个 JcomboBox 中选择的项目。
我试过 if(o == comboBox2) 还是一样的问题。
@Override
public void actionPerformed(ActionEvent e)
Object o = e.getSource();
if(o == comboBox1)
Object matricule = comboBox1.getSelectedItem();
String sqll = "Select * FROM clients WHERE matricule = " +matricule;
try
rs = stat.executeQuery(sqll);
while(rs.next())
nom.setText(rs.getString("nom"));
prenom.setText(rs.getString("prenom"));
cin.setText(rs.getString("cin"));
adresse.setText(rs.getString("adresse"));
catch (SQLException e1)
// TODO Auto-generated catch block
e1.printStackTrace();
comboBox2.removeAllItems();
Object index = comboBox1.getSelectedItem();
String sql = "Select distinct p.code FROM parcelle p, clients c WHERE c.matricule = p.exploitant AND c.matricule = " +index;
try
rs = stat.executeQuery(sql);
while(rs.next())
System.out.println(rs.getInt("code"));
comboBox2.addItem(rs.getInt("code"));
catch (SQLException e1)
// TODO Auto-generated catch block
e1.printStackTrace();
return;
Object code = comboBox2.getSelectedItem();
String sqll = "Select * FROM parcelle WHERE code = " +code;
try
rs = stat.executeQuery(sqll);
while(rs.next())
sau.setText(rs.getString("sau"));
sol.setText(rs.getString("type_sol"));
irrigation.setText(rs.getString("mode_irrigation"));
exploitation.setText(rs.getString("type_exploitation"));
catch (SQLException e1)
// TODO Auto-generated catch block
e1.printStackTrace();
【问题讨论】:
数据库中还有更多内容,但您能否确认您的查询返回了多行? 是的,我尝试通过 phpMyAdmin 查询并返回所有现有行。 i46.tinypic.com/2uyr6e8.jpg 如需尽快获得更好的帮助,请发帖SSCCE。对数据进行硬编码。 【参考方案1】:您能否确认任何记录中的“code”值都不为空?从事物的声音来看,第二条记录中“代码”的值为 null(或任何其他无法解析为 int 的值),这会导致异常。
【讨论】:
以上是关于JcomboBox 仅显示一项的主要内容,如果未能解决你的问题,请参考以下文章