在数据库中输入新数据后,我的JTable不会刷新。我需要终止并再次执行才能看到结果。我已经包括了DefaultTableModel和fireTableDataChanged。我还错过了什么?谢谢!
{
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);
}我可以创建一个'Refresh Button‘并刷新这些值吗?
发布于 2012-05-02 19:37:55
您不应该显式地调用fireTableDataChanged();DefaultTableModel会在您更新模型时自动执行此操作,如下面的相关example所示。
发布于 2012-05-02 19:57:49
您可以创建新的JTable实例。只创建一次,并仅将新模型设置为现有的JTable (正确添加到容器中)。
发布于 2015-01-12 16:54:38
2.在后端…中创建表
下载rs2xml jar文件
Download rs2xml.jar
右键单击项目>属性>库>添加jar /文件夹>选择jar> ok
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;
}
}statement=con.getConnection().createStatement();;con=new DBConnect();
7.然后使用以下代码…创建一个更新函数
void update_table() throws SQLException{
rs=statement.executeQuery("select * from details");
jTable1.setModel(DbUtils.resultSetToTableModel(rs));
}8.在按钮的action事件中,键入以下内容并调用update函数
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.然后运行项目…
你也可以遵循这个教程:--
How to refresh JTable after insert delete or update the data in java Netbeans ID
https://stackoverflow.com/questions/10411112
复制相似问题