【发布时间】:2015-05-21 08:33:01
【问题描述】:
我有一个“treinkoverzicht.java”,它可以制作一个表格,从我的 SQL 数据库中获取一些信息。
您可以在 AdminScherm.java 中看到 select 查询(请参阅下面的 AdminScherm.java)。
问题是:如果我单击删除按钮(称为:verwijder),它会从我的数据库中删除记录(删除查询),这当然可以。但它不会直接更新我的屏幕,所以看起来删除的行仍然在表和数据库中。 就像按下(verwijder)删除按钮时直接刷新我的页面一样。
(treinkoverzicht.java) ,如下:/
@Override
public void actionPerformed(ActionEvent e) {
if ("Bekijk foto".equals(e.getActionCommand())) {
JButton btn = (JButton) e.getSource();
BekijkFoto b = new BekijkFoto(koeriers.get(Integer.parseInt(btn.getName())));
b.setVisible(true);z
} else if ("Verwijder".equals(e.getActionCommand())) {
JButton btn = (JButton) e.getSource();
int keuze1 = JOptionPane.showConfirmDialog(
this,
"Weet u zeker dat u deze treinkoerier wilt verwijderen?",
"Verwijderen",
JOptionPane.YES_NO_OPTION);
if (keuze1 == JOptionPane.YES_OPTION) {
try {
stmt = con.createStatement();
String verwijderenkoerier = "DELETE FROM coerier WHERE CoerierID=" + koeriers.get(Integer.parseInt(btn.getName())).getId();
stmt.executeUpdate(verwijderenkoerier);
stmt.close();
} catch (SQLException a) {
System.out.println("Statement kan niet worden uitgevoerd.");
}
}
}
}
只要 actionPerformed() 进入 AdminScherm.java 就应该重新加载他的查询。
(AdminScherm.java) ,如下:/
treinO = new TreinKOverzicht(this);
String sqlkoerier = "SELECT * FROM coerier";
try {
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sqlkoerier);
while (rs.next()) {
int id = rs.getInt("CoerierID");//aangepast
String naam = rs.getString("FirstName");
String achternaam = rs.getString("LastName");
String email = rs.getString("Email");
int telefoonnummer = rs.getInt("Telephone");
int kmreward = rs.getInt("KmReward");
TreinKoerier t = new TreinKoerier(id, naam, achternaam, email, telefoonnummer, kmreward);//aangepast
treinO.voegTreinKToe(t);
}
} catch (SQLException sd) {
System.out.println("Statement kan niet worden uitgevoerd.");
}
treinO.printTabel();
【问题讨论】: