gpt4 book ai didi

java - 如何使用另一个组合框控制一个组合框?

转载 作者:行者123 更新时间:2023-12-02 13:12:04 26 4
gpt4 key购买 nike

enter image description here

我想要的是当我单击主题组合框 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);
}
}

最佳答案

事情没那么简单。仅调用 addItem() 根本不足以更新组合框数据;以及该事物的 UI 表示。

您想查看此question此处了解完成该操作所需的详细信息。

但除此之外:您确实应该退后一步,阅读一下如何正确构建连接到数据库的 UI 应用程序。 ActionListener 直接从数据库中提取数据是绝对错误的!

首先,这违反了分层的任何想法。您可以在 UI 和数据库之间添加抽象。请参阅here或者 there供进一步阅读。

然后:actionPerformed() 方法由所谓的事件调度程序线程调用。该线程用于调度事件。您不应该“占用它”来调用数据库。你知道,如果数据库连接用完怎么办?那个 DB 代码……在那里呆了一分钟,等待轮到它?这将导致您的 UI 卡住,因为负责保持 UI 运行的线程...坐在那里等待您的数据库。

长话短说:看来你给自己带来了过重的负担。您应该退一步,花相当多的时间学习这些方面。否则,你的工作结果将会有问题,并且没有人会愿意使用它。

关于java - 如何使用另一个组合框控制一个组合框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43908538/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com