作者tga123 (叛帝)
看板java
标题[问题] table更新的方法该怎麽使用?
时间Thu Nov 22 14:12:04 2012
首先先告诉大家我要做什麽
我用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
1F:→ gp123:如果你只是想维持同一个视窗,按下钮後才更新表格内容的话, 11/23 13:25
2F:→ gp123:那麽应该在先开好视窗,并留下JTable或TableModel的变数, 11/23 13:27
3F:→ gp123:然後呼叫TableModel的fireXXXChanged方法,详情查Java API 11/23 13:30