【发布时间】:2020-05-02 18:14:38
【问题描述】:
我想在单击组合框中的不同项目后立即更新我的表格。添加 actionPerformed 组合框后仅显示第一项,箭头不起作用。选择不同的项目并单击按钮后,我正在更新我的表格。在按钮中执行的操作确实有效。我是否错误地使用了 actionPerformed?
这是我如何将项目添加到组合框的代码。
private void fillComboBox() {
try {
DatabaseMetaData meta = (DatabaseMetaData) conn.getMetaData();
rs = meta.getTables("db", null, null, new String[] {
"TABLE"
});
while (rs.next()) {
ComboBox.addItem(rs.getString("TABLE_NAME"));
}
} catch(Exception e) {
JOptionPane.showMessageDialog(null,e);
}
}
这是我填表的方式。
private void fillTable()
{
String selectedValue = ComboBox.getSelectedItem().toString();
String sql = "Select * from "+selectedValue;
Statement stmt;
try {
stmt = conn.createStatement(rs.TYPE_SCROLL_INSENSITIVE,rs.CONCUR_UPDATABLE);
rs = stmt.executeQuery(sql);
Table.setModel(DbUtils.resultSetToTableModel(rs));
} catch (SQLException ex) {
Logger.getLogger(Welcome.class.getName()).log(Level.SEVERE, null, ex);
}
}
点击按钮后,我更新表格
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
fillTable();
}
工作正常,但我想在单击组合框中的新项目后立即更新表格。
编辑:我通过在 fillTable() 之后添加 fillComboBox() 来修复它。但是现在我在组合框中有两个第一个项目,即使在 removeAll() 之后也是如此。我该如何解决?
public Welcome() {
initComponents();
conn = MySqlConnect.ConnectDB();
fillComboBox();
fillTable();
ComboBox.removeAll();
fillComboBox();
repaint();
}
【问题讨论】:
标签: java mysql netbeans combobox