[問題] table更新的方法該怎麼使用?

看板java作者 (叛帝)時間13年前 (2012/11/22 14:12), 編輯推噓0(003)
留言3則, 1人參與, 最新討論串1/1
首先先告訴大家我要做什麼 我用HTTPRESPON取得一段值 值已經整理出來了叫做DETA 我要把DETA放入表格中 當我每次按下按鈕的時候 就會得到新的DETA 在這個同時表格上顯示的值也會更著變動 最早我是用Jtable直接建立一個table 然後在把值放入table中 不過查了一下資料發現 table是不能做立即更新的必須使用Model 可以使用DefaultTableModel或AbstractTableModel 目前我是使用AbstractTableModel 要達到更新的目的可以利用fireTableCellUpdated的方法 但是我還是不知道該怎麼做 目前我是按下按鈕 取完值之後呼叫GJJ(); 但是一呼叫他雖然會更新 不過是跳出一個更新過的新視窗 希望版友能給我一些幫助 可以的話實做給我看是最好的謝謝大家 以下是Table相關的語法 class MyTable extends AbstractTableModel { Object p[][]={ {DETA_19_1,DETA_19_2,DETA_19_3,DETA_19_4,DETA_19_5} }; String[] n = { "NO","CARD","NAME","NAME2","time" }; public int getColumnCount() { return n.length; } public int getRowCount() { return p.length; } public String getColumnName(int col) { return n[col]; } public Object getValueAt(int row, int col) { return p[row][col]; } public Class getColumnClass(int c) { return getValueAt(0, c).getClass(); } } private void GJJ() { JFrame f = new JFrame(); MyTable mt = new MyTable(); JTable t = new JTable(mt); t.setPreferredScrollableViewportSize(new Dimension(550, 30)); JScrollPane s = new JScrollPane(t); f.getContentPane().add(s, BorderLayout.CENTER); f.setTitle("coolman"); f.pack(); f.setVisible(true); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } 外國論壇有人回我說能使用 public void setValueAt(Object aValue, int row, int column) 但是我不知道怎麼使用阿=口= 值更新候補上一個HG();然後 class HG extends AbstractTableModel{ Object getValueAt(int row, int col) { return p[row][col]; } } ........ 大失敗!!好像不能這樣用orz 希望版友指點迷津 謝謝 -- □卑怯戦隊 __ _ ▍▍▎▎▏▏ψquetzal ◤ ◥ ▇▇▇ ▇▇▇ ◢◢ ◤◥ ▇▇▇ ▉▇▇ ▉▇▇ __★ ★ ____◥◥ ﹣ —▼ ▁▁ ξ● ● '" ██◣ ;"◢◤ ▇▇ █▇ ◢◤★ ★ ︶▲ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 119.14.80.132

11/23 13:25, , 1F
如果你只是想維持同一個視窗,按下鈕後才更新表格內容的話,
11/23 13:25, 1F

11/23 13:27, , 2F
那麼應該在先開好視窗,並留下JTable或TableModel的變數,
11/23 13:27, 2F

11/23 13:30, , 3F
然後呼叫TableModel的fireXXXChanged方法,詳情查Java API
11/23 13:30, 3F
文章代碼(AID): #1GhS8umS (java)