JTable的更新问题~,求教~

taoyi 2004-12-08 09:40:14
问题是这样的:在程序主窗体中放置一个JTable组件,用于显示从数据库中读取的数据.同时在该窗体上还有两个按钮,分别用于插入一条新记录到数据库中和删除一条数据记录.
代码类似于下:

class DataGridFrame extends JFrame{
private JTable table;
private ResultSetModel model;
private JScrollPane scrollPane;
...............
public DataGridFrame(){
// DataAccess.getDefaultResultSet()用于从数据表中读取所有数据记录
model = new ResultSetModel(DataAccess.getDefaultResultSet());
table = new JTable(model);
scrollPane = new JScrollPane(table);
getContentPane().add(scrollPane);
....................
//
JButton addBtn = new JButton("添加");
addBtn.addActionListener(new ActionListener(){
// 插入一条数据记录到数据表
DataAccess.Insert();
// 更新
getContentPane().remove(scrollPane);
model = new ResultSetModel(DataAccess.getDefaultResultSet());
table = new JTable(model);
scrollPane = new JScrollPane(table);
getContentPane().add(scrollPane);
getContentPane().validate();
});
....................
...................
}
}

但是问题是,每次插入记录时都不能正常进行JTable中数据的刷新,在第二次添加数据的时候,第一次添加的记录才在表中显示出来.也就是说当第一次添加时,JTable中的数据根本没任何反应.

请问各位这是为什么?应该怎样才能对JTable进行正常刷新?谢谢~~
...全文
178 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdngjm 2005-01-11
  • 打赏
  • 举报
回复
要在tableModel里面添加和删除数据
askr 2005-01-10
  • 打赏
  • 举报
回复
你的模型应该是继承自AbstractTableModel,数据改变时,要调用fireTableDataChanged()方法,视图才会刷新,如果模型继承自DefaultTreeModel,会自动刷新。数据库操作的话,用jb来的组件就可以了,很方便,不过,介绍这方面的书籍,我却很少看到,有一些电子书,举的例子都看不懂,讲的也不详细。JTable是典型的MVC模式,视图(不存储数据,只负责向模型查询)和模型(实际存储数据的地方)是独立工作的,要牢记这点,问题就解决了
hyr1234 2005-01-10
  • 打赏
  • 举报
回复
每次添加都要删除table,不能在tablemodel上改嘛!!!!看着不爽呀!
PoemCode 2005-01-09
  • 打赏
  • 举报
回复
不知道现在还用的上不?

fireTableStructureChanged

public void fireTableStructureChanged()

Notifies all listeners that the table's structure has changed. The number of columns in the table, and the names and types of the new columns may be different from the previous state. If the JTable receives this event and its autoCreateColumnsFromModel flag is set it discards any table columns that it had and reallocates default columns in the order they appear in the model. This is the same as calling setModel(TableModel) on the JTable.

PoemCode 2005-01-09
  • 打赏
  • 举报
回复
我也在找答案
taoyi 2004-12-08
  • 打赏
  • 举报
回复
没人理??


我顶,,,,行了吧~

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧