Re: [問題] JTable row 數目更新
建立新的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)
討論串 (同標題文章)