我想要的是当我点击主题组合框时,Batch Name:
组合框应根据主题选择而改变。我试过这个,但没有任何反应。此代码在Subject Name:
组合框操作执行功能中。
private void combosubjActionPerformed(java.awt.event.ActionEvent evt) {
String sub= evt.getSource().toString();
try {
btchcombo.removeAllItems();
Connection conn = getConnection();
PreparedStatement prpd = conn.prepareStatement("SELECT batch FROM BATCHLIST where subject=?");
prpd.setString(1,sub);
ResultSet rs = prpd.executeQuery();
while (rs.next()) {
String pat = rs.getString("BATCH");
btchcombo.addItem(pat);
}
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, e);
}
}
答案 0 :(得分:1)
不是那么简单。只是调用actionPerformed()
仅仅不足以更新组合框数据;以及该事物的UI表示。
您想在此处查看此question以获取完成所需的详细信息。
但除此之外:你应该回到这里,并做一些阅读如何正确构建连接到数据库的UI应用程序。对于ActionListener来说,直接从数据库中提取数据绝对是错误!
首先,这违反了分层的任何想法。您在UI和数据库之间添加了抽象。见here或 there进一步阅读。
然后:所谓的事件调度程序线程调用{{1}}方法。该主题适用于调度事件。您不应该“占用它”来调用数据库。你知道,如果你的数据库连接耗尽,该怎么办?那个DB代码......在那里坐了一会儿,等着轮到他了?这将导致您的UI 冻结,因为负责保持用户界面的线程......坐在那里等待您的数据库。
长话短说:看起来你自己负担过重了。你应该退一步,花一些时间学习这些方面。否则,你的工作结果将是错误的,没有人会想要使用它。