Java 单击jComboBox中的值时自动填充文本字段
大家晚上好 我一直在开发一个简单的仓库/库存管理系统,该系统连接到一个mySql数据库。该数据库中的一个表(OESCODE)包含有关物品所在仓库区域(“区域”)的信息以及相应的数值(“代码”)。例如,小商品为1,长商品为2等 在GUI中,我有一个jCombobox,允许您选择区域,其思想是在下面有一个文本字段来显示相应的数值。 下面是我的意思的截图: 这是标记为Hal(halCombo)和OES(oesTxt)代码的字段。 相应的代码:Java 单击jComboBox中的值时自动填充文本字段,java,sql,swing,jcombobox,Java,Sql,Swing,Jcombobox,大家晚上好 我一直在开发一个简单的仓库/库存管理系统,该系统连接到一个mySql数据库。该数据库中的一个表(OESCODE)包含有关物品所在仓库区域(“区域”)的信息以及相应的数值(“代码”)。例如,小商品为1,长商品为2等 在GUI中,我有一个jCombobox,允许您选择区域,其思想是在下面有一个文本字段来显示相应的数值。 下面是我的意思的截图: 这是标记为Hal(halCombo)和OES(oesTxt)代码的字段。 相应的代码: private void pickHalComboPop
private void pickHalComboPopupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent evt) {
String fill = (String) halCombo.getSelectedItem();
String query = "SELECT * FROM OESCODE WHERE AREA=?";
try {
pst = conn.prepareStatement(query);
pst.setString(1, fill);
rs = pst.executeQuery();
if (rs.next()) {
String code = rs.getString("CODE");
oesTxt.setText(code);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
不过这里有一个问题:上面的字段(标记为Artiekelcode、Omschrijving和Eenheid)与我上面描述的完全一样。例如,当我单击Artiekelcode字段中的值时,Omschrijving和eenhide字段会自动填充相应的值(当然,来自不同的数据库表)
下面是代码:
private void pickArticleComboPopupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent evt) {
String fill = (String) pickArticleCombo.getSelectedItem();
String query = "SELECT * FROM STAMDATA WHERE ARTIKELNUMMER=?";
try {
pst = conn.prepareStatement(query);
pst.setString(1, fill);
rs = pst.executeQuery();
if (rs.next()) {
String desc = rs.getString("OMSCHRIJVING");
String eenh = rs.getString("EENHEID");
eenheidTxt.setText(eenh);
pickDescriptionTxt.setText(desc);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
所以在过去的几个小时里,我一直在试图弄清楚为什么它在上面的字段上有效,而不是在下面的字段上,因为这两个原则是相同的
如有任何想法,将不胜感激
提前谢谢 看来我已经明白了。似乎PopupMenuWillBecomeInvisible方法没有被使用,所以我创建了它,并再次调用它,它成功了。“看起来我已经找到了答案。”很高兴你把它整理好了。对于这个问题,两个行动方案中的一个比在评论中报道成功要好。1) 在下面输入更完整的答案,然后在网站允许的情况下接受答案。2) 删除标签下方带有链接的问题(向左)。