Java DefaultTableModel不刷新
新数据输入数据库后,我的JTable不会刷新。我需要终止并再次执行以查看结果。我已经包括DefaultTableModel和fireTableDataChanged。我还错过了什么?谢谢Java DefaultTableModel不刷新,java,swing,jtable,refresh,defaulttablemodel,Java,Swing,Jtable,Refresh,Defaulttablemodel,新数据输入数据库后,我的JTable不会刷新。我需要终止并再次执行以查看结果。我已经包括DefaultTableModel和fireTableDataChanged。我还错过了什么?谢谢 { columnNames = new Vector(); data = new Vector(); try{ //database stuffs } catch{ } DefaultTableModel tm = new D
{
columnNames = new Vector();
data = new Vector();
try{
//database stuffs
}
catch{
}
DefaultTableModel tm = new DefaultTableModel();
JTable table = new JTable (tm);
JScrollPane scrollPane = new JScrollPane(table);
table = new JTable(data,columnNames)
{
public boolean isCellEditable(int row, int column){
return false;
}
public void newDataAvailable (TableModelEvent e){
}
};
scrollPane = new JScrollPane(table);
scrollPane.setBounds(33, 47, 256, 228);
panel.add(scrollPane);
}
我可以创建“刷新按钮”并刷新值吗 您不应该显式调用fireTableDataChanged;更新模型时,DefaultTableModel会自动执行此操作,如本相关文档所示。您不必显式调用fireTableDataChanged;当您更新模型时,DefaultTableModel会自动执行此操作,如本相关文档所示。您可以创建新的JTable实例。只创建一次,并将新模型仅设置为正确添加到容器中的现有JTable。您可以创建新的JTable实例。只创建一次,并将新模型仅设置为正确添加到容器中的现有JTable 我创建了一个新项目,我选择了一个新框架,并将表格、标签、文本字段和按钮从swing控件拖动到框架中。 2.在后端创建一个表 从这个链接下载rs2xml jar文件 将其添加到项目库… 右键单击项目>属性>库>添加Jar/文件夹>选择Jar>确定 5.然后使用以下代码连接mysql
public class DBConnect {
Connection connection = null;
public Connection getConnection() {
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
System.out.println("connection successfully");
} catch (Exception ex) {
ex.printStackTrace();
}
return connection;
}
}
con=new DBConnect();
statement=con.getConnection().createStatement();
使用以下代码调用页面中的函数
public class DBConnect {
Connection connection = null;
public Connection getConnection() {
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
System.out.println("connection successfully");
} catch (Exception ex) {
ex.printStackTrace();
}
return connection;
}
}
con=new DBConnect();
statement=con.getConnection().createStatement();
7.然后使用以下代码创建更新函数类型
void update_table() throws SQLException{
rs=statement.executeQuery("select * from details");
jTable1.setModel(DbUtils.resultSetToTableModel(rs));
}
8.在按钮操作事件中,键入以下内容并调用更新功能
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try {
Object name=jTextField1.getText();
String sql="insert into details (name) values('"+name+"')";
int resultset=statement.executeUpdate(sql);
update_table();
} catch (SQLException ex) {
Logger.getLogger(update.class.getName()).log(Level.SEVERE, null, ex);
}
}
9.然后运行项目
您也可以按照本教程进行操作:-
我创建了一个新项目,我选择了一个新框架,并将表格、标签、文本字段和按钮从swing控件拖动到框架中。
2.在后端创建一个表
从这个链接下载rs2xml jar文件
将其添加到项目库…
右键单击项目>属性>库>添加Jar/文件夹>选择Jar>确定
5.然后使用以下代码连接mysql
public class DBConnect {
Connection connection = null;
public Connection getConnection() {
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
System.out.println("connection successfully");
} catch (Exception ex) {
ex.printStackTrace();
}
return connection;
}
}
con=new DBConnect();
statement=con.getConnection().createStatement();
使用以下代码调用页面中的函数
public class DBConnect {
Connection connection = null;
public Connection getConnection() {
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
System.out.println("connection successfully");
} catch (Exception ex) {
ex.printStackTrace();
}
return connection;
}
}
con=new DBConnect();
statement=con.getConnection().createStatement();
7.然后使用以下代码创建更新函数类型
void update_table() throws SQLException{
rs=statement.executeQuery("select * from details");
jTable1.setModel(DbUtils.resultSetToTableModel(rs));
}
8.在按钮操作事件中,键入以下内容并调用更新功能
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try {
Object name=jTextField1.getText();
String sql="insert into details (name) values('"+name+"')";
int resultset=statement.executeUpdate(sql);
update_table();
} catch (SQLException ex) {
Logger.getLogger(update.class.getName()).log(Level.SEVERE, null, ex);
}
}
9.然后运行项目
您也可以按照本教程进行操作:-
谢谢我已经删除了fireTableDataChanged,它仍然不能工作。我应该添加新的可用数据吗?使用PreparedStatement将数据直接添加到数据库中,这是否会影响自动更新?在数据库中插入新数据并提交结果后,您需要再次运行原始查询以获取新行。谢谢。我已经删除了fireTableDataChanged,它仍然不能工作。我应该添加新的可用数据吗?使用PreparedStatement将数据直接添加到数据库中,这是否会影响自动更新?在数据库中插入新数据并提交结果后,您需要再次运行原始查询以获取新行。谢谢。我修改了我的代码,但它似乎仍然不起作用。我应该调用特定的方法来刷新值吗?我必须验证或重新绘制我的JTable吗?谢谢。我修改了我的代码,但它似乎仍然不起作用。我应该调用特定的方法来刷新值吗?我是否必须验证或重新绘制我的JTable?