gpt4 book ai didi

java - 如何在另一个 JComboBox 中选择某个项目时显示 JComboBox

转载 作者:行者123 更新时间:2023-12-01 10:08:53 28 4
gpt4 key购买 nike

当我从 JComboBox A 中选择项目时,我尝试在 JComboBox B 中显示值。到目前为止,当我从 JComboBox A 中选择一个值时,没有任何反应。这是我的数据和代码。例如,如果我从 JComboBox A(paperid) 中选择 1,则 JComboBox B(authorid) 中的结果将为 1,2,4。

enter image description here

enter image description here JComboBox A

enter image description here JComboBox B

private void comboboxAPopupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent evt) { 

String display = (String) comboboxA.getSelectedItem();
String sql = "Select authorid from submission where paperid =?";

try {
ps=conn.prepareStatement(sql);
ps.setString(1,display);
rset = ps.executeQuery();

if (rset.next()){
String add1 = rset.getString("authorid");
System.out.println(add1);
comboboxB.setSelectedItem(add1);
}

} catch(Exception e) {
JOptionPane.showMessageDialog(null,e);
}
}

最佳答案

我想我终于明白了你的问题。您希望在第二个组合框中对查询结果进行收费,不是吗?

如果是这样的话,试试这个

 private void comboboxAPopupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent evt) { 

String display = (String) comboboxA.getSelectedItem();
String sql = "Select authorid from submission where paperid =?";

comboboxB.removeAllItems(); // <- Clear comboboxB

try {
ps = conn.prepareStatement(sql);
ps.setString(1, display);
rset = ps.executeQuery();

while (rset.next()) { // <- Include all authors found
String add1 = rset.getString("authorid");
System.out.println(add1);
comboboxB.addItem(add1);
}

} catch(Exception e) {
JOptionPane.showMessageDialog(null,e);
}
}

也许您必须在执行此方法后强制在显示 JComboBox 的容器中重新绘制。 “myContainer”不是变量名称,请替换为您的面板或框架的名称。

   myContainer.revalidate(); 
myContainer.repaint();

关于java - 如何在另一个 JComboBox 中选择某个项目时显示 JComboBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36288698/

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