作者qrtt1 (愚者)
看板java
标题Re: [问题] JTable row 数目更新
时间Wed Jul 5 19:19:44 2006
建立新的Model时,同时使用model.fireTableDataChanged();
这一个改变的通知,要用TableModelListener来接住,然後updateUI
model.addTableModelListener(new TableModelListener(){
public void tableChanged(TableModelEvent e) {
table.updateUI();
}});
或是在Model的建构子,偷把table ref塞进去。直接地update
或是写一个Thread定时update @"@
※ 引述《yoco315 (眠月)》之铭言:
: 初学 Java 两天,现在在摸 Swing
: 我根据 java.sun.com 上面的 Java Swing tutorial 关於 JTable 的部份
: 要写一个简单的 browser (可以列出目录下面的档案跟一些资讯)
: GUI 架构是这样的
: Frame 放进一个 Panel
: Panel 放进一个 Scroll Panel,这个 Scroll Panel 以 Table 为 Client
: 而这个 Table 是根据 MyTableModel extends AbstractTableModelTableModel 建立的
: 当我每次指定一个目录给程式的时候
: 我就会根据目录的内容更新建立一个新的 table model 然後指定给 table
: 我的问题在於
: 每次指定新的 table model 以後
: 虽然 table 的 cell 内容会更新
: 但是 table 的 row 的数目竟然不会更新 orz
: 要等到我 resize window 以後 row 的数目才会更新
: 比如说我上一次浏览的目录有 10 个档案
: 那 Table 就有 10 rows
: 这次切换到另外一个目录,假设有 30 个档案
: 但是 Table 依然只有 10 rows
: 一定要等到我 resize window 之後,table 才会更新成 30 行
: 因为初学,如果问了一个笨问题的话请原谅,
: 我已经查过 google 跟 java.sun.com 还有 javaworld.tw,
: 但是没有找到解决方法,
: 我试过 updataUI, invalidate, revalidata, fireTableXXXXX, repaint 等
: 也都没有用。
: 请教前辈我应该如何解决?
: 先谢过。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.26.34.105
※ 编辑: qrtt1 来自: 163.26.34.105 (07/05 19:20)