我有一个名为Product Management Frame的JFrame,它有一个插入和一个显示按钮。如果我点击Insert Button,它会将所有数据(Name, Username, Password, User-ID)插入到数据库中。
问题是如果我点击"Insert"按钮,点击"显示"后第二次显示。按钮,显示数据从数据库到JTable,我的JFrame冻结,反之亦然。
下面是我的代码,它是在名为showData()的方法中,并从"Show"按钮的动作监听器。
ResultSet r = s.executeQuery("SELECT * FROM EmployeeTable");
r.last();
r.beforeFirst();
while (r.next()) {
String name1 = r.getString("EmployeeName");
String userID = r.getString("UserID");
String username = r.getString("Username");
String password = r.getString("Password");
String[] data = {name1, userID, username, password};
DefaultTableModel m1 = (DefaultTableModel) table.getModel();
m1.addRow(data);
table.setModel(m1);
有什么解决办法或者你们能给我建议我应该怎么做吗?
如果没有创建框架和按钮的代码,真的很难理解发生了什么。只要确保你在swingutility下运行gui。
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
你可以在:
https://docs.oracle.com/javase/tutorial/uiswing/concurrency/index.html