我正在使用Java和MySQL作为数据库开发数据库应用程序。 我使用Netbeans作为开发工具。
我需要在JTable中显示存储的数据库。
现在我通过查询将数据添加到数据库。 JTable没有立即显示更新的详细信息。我需要重新启动应用程序,即再次运行它。
现在我需要知道当DB发生变化时如何刷新JTable。
请提供步骤或示例编码,因为我无法在互联网上找到某个编码示例。
答案 0 :(得分:2)
也许它足以通过表模型触发更改:
yourTable.getModel().fireTableDataChanged()
答案 1 :(得分:2)
每当数据库中的数据发生变化时,您需要重新创建TableModel,然后使用新模型更新表:
TableModel model = ...
table.setModel( model );
答案 2 :(得分:1)
我遇到了同样的问题,然后我创建了名为" UPDATEtable()"的函数。 我在其中放置连接代码并在需要从Mysql输入Jtable中的数据时调用该函数。对于“刷新”按钮,我首先从表中清除数据,然后调用相同的函数。
以下是代码:-(表变量名称 - TB1)
private void **UPDATEtable()**{
DefaultTableModel model=(DefaultTableModel) TB1.getModel();
try{
stmt= con.createStatement();
String query="SELECT * FROM goods ORDER BY order_num DESC;";
ResultSet rs = stmt.executeQuery(query);
while(rs.next()){
String PID = rs.getString("PID");
String Pname = rs.getString("Pname");
String NUM = rs.getString("order_num");
model.addRow(new Object[] {PID ,Pname,NUM);
}
}
catch(Exception e)
{
System.out.print(e);
}
FOR REFRESH BUTTON: -
DefaultTableModel model=(DefaultTableModel) TB1.getModel();
while(model.getRowCount()>0){
model.setRowCount(0);
}
UPDATEtable();
答案 3 :(得分:0)
如果您将instanciated tableNameList设置为observable,则还可以使用以下代码:
tableNameList.clear();
tableNameList.addAll(tableQuery.getResultList());