如何在添加新条目后刷新JTable

时间:2014-03-19 16:06:29

标签: java swing jtable

我从数据结构JTable填充了List<String>。我还有一个按钮&#34; Create New Field&#34;用于在List中创建新条目。我可以向List<String>添加新条目,但在添加新条目后,我不知道如何刷新JTable

3 个答案:

答案 0 :(得分:1)

您必须使用tableModel.fireTableDataChanged()。或者如果表中只更新了一小部分(即一个单元格):tableModel.fireTableCellUpdated(x,y)

根据评论,您需要编写自己的小TableModel

  • AbstractTableModel
  • 派生
  • 将您的列表传递给表mdoel的构造函数
  • 相应地实施所需方法
  • getRowCount返回list.size()
  • getColumnCount返回1
  • getValueAt返回list.item(row)
  • 使用该表模型而不是DefaultTableModel
  • 如果您更新了列表,请使用fireTableDataChanged()

答案 1 :(得分:1)

1.我制作了一个新项目,我选择了一个新的框架,并将一个表格,一个标签,一个文本字段和一个按钮从摇摆控件拖到你的框架上。

2.在后端创建一个表

3.从此链接下载rs2xml jar文件 Download rs2xml.jar

将其添加到项目库

4.然后连接MySQL

5.然后创建更新功能,输入以下代码......

rs=statement.executeQuery("select * from details");
jTable1.setModel(DbUtils.resultSetToTableModel(rs));

6.在按钮操作事件中,键入以下内容并调用更新功能。

Object name=jTextField1.getText();
String sql="insert into details (name) values('"+name+"')";
int  resultset=statement.executeUpdate(sql);

您可以按照本教程:---

How to refresh jTable after adding new entry

答案 2 :(得分:0)

使用观察者模式。

http://en.wikipedia.org/wiki/Observer_pattern

您的桌面模型应该是列表的观察者。因此,当您列出数据更改时,表格将会更新。