Я хочу обновить свою таблицу сразу после нажатия на другой элемент в выпадающем списке. После добавления actionPerformed combobox показывает только первый элемент и стрелка не работает. Я обновляю свою таблицу после выбора другого элемента и нажатия кнопки. Действие, выполняемое в кнопке, работает. Я использую 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();
}
Работает нормально, но я бы хотел обновить таблицу сразу после нажатия на новый элемент в выпадающем списке.
Редактировать: я исправил это, добавив fillComboBox () после fillTable (). Но теперь у меня есть два первых элемента в выпадающем списке даже после removeAll (). Как мне это исправить?
public Welcome() {
initComponents();
conn = MySqlConnect.ConnectDB();
fillComboBox();
fillTable();
ComboBox.removeAll();
fillComboBox();
repaint();
}