在另一个 JComboBox 中选择项目时如何显示 JComboBox
How to display a JComboBox when an item is selected in another JComboBox
当我 JComboBox A
中的 select 项时,我试图在 JComboBox B
中显示值。到目前为止,当我 select 来自 JComboBox A
的值时没有任何反应。这是我的数据和代码。因此,例如,如果我 select 1 来自我的 JComboBox A
(paperid),我在 JComboBox B
(authorid) 中的结果将是 1,2,4.
JComboBox A
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);
}
}
也许您必须在执行此方法后强制重绘显示 JComboBoxes 的容器。 "myContainer"
不是变量名,请替换为您的面板或框架的名称。
myContainer.revalidate();
myContainer.repaint();
当我 JComboBox A
中的 select 项时,我试图在 JComboBox B
中显示值。到目前为止,当我 select 来自 JComboBox A
的值时没有任何反应。这是我的数据和代码。因此,例如,如果我 select 1 来自我的 JComboBox A
(paperid),我在 JComboBox B
(authorid) 中的结果将是 1,2,4.
JComboBox A
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);
}
}
也许您必须在执行此方法后强制重绘显示 JComboBoxes 的容器。 "myContainer"
不是变量名,请替换为您的面板或框架的名称。
myContainer.revalidate();
myContainer.repaint();