【发布时间】:2015-05-21 22:04:55
【问题描述】:
我正在尝试开发一个小应用程序,其中有一个 JComboBox,它在开始时使用一些元素进行初始化,从 JTable 中检索。由于插入的数据不同,JTable 会不断变化。
但是,每当我向数据库中插入或删除新数据时,组合框都不会更新,只有在我关闭程序并打开它时才会更新。 谁能给我一个提示/帮助我做错了什么。
这是我的代码:
private void fillcombopart() {
try {
String sql = "select * from partrepair";
conn = DriverManager.getConnection("jdbc:sqlite:C:\\database.db");
PreparedStatement pst = conn.prepareStatement(sql);
ResultSet rs = pst.executeQuery();
DefaultComboBoxModel model12 = new DefaultComboBoxModel();
while (rs.next()) {
model12.addElement(rs.getString("Name"));
model12.addListDataListener(partCombo);
}
partCombo.setModel(model12);
// partCombo.addItem(rs.getString("Name"));
pst.close();
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
数据库的更新方法
public void refresh2() {
try {
String sql12 = "select * from partrepair";
conn = DriverManager.getConnection(s);
PreparedStatement pst12 = conn.prepareStatement(sql12);
ResultSet rs = pst12.executeQuery();
tablerepair.setModel(DbUtils.resultSetToTableModel(rs));
pst12.close();
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
}
【问题讨论】:
-
没有多少数据库提供监听变化的机制。您最好的选择是提供一种方法,您可以通过该方法自动或手动检查数据库并相应地更新组合框的内容......
-
我为我的 jtable 提供了一个更新方法,它会在数据库更改时更新 jtable
标签: java swing jtable refresh jcombobox