当前位置: 技术问答>java相关
怎样刷新JTable
来源: 互联网 发布时间:2015-10-30
本文导语: 有个问题,不知道能不能说清楚,那位大侠给我指点,感激不尽。 我在Frame1 里面有一个jtable,一个defaulttablemode.一切工作正常。 然后再定义一个dialog类,再Frame1里面创建那个dialog类的实例(对象),并将dialog显示...
有个问题,不知道能不能说清楚,那位大侠给我指点,感激不尽。
我在Frame1 里面有一个jtable,一个defaulttablemode.一切工作正常。
然后再定义一个dialog类,再Frame1里面创建那个dialog类的实例(对象),并将dialog显示出来。
在操作dialog的时候,怎样刷新Frame1里面的表格。
我在Frame1里面这样定义:
static private defaulttablemode tm = new defaulttablemode();
private jtable tb = new jtable();
tb.setmode(tm);
这些都没有问题,然后定义:
static void public refresh(){
tm.fireTableDataChange()
}
在dailog类里面调用:
Frame1.refresh()
可还是不行。 不知道什么原因。
好像我删除表格的时候直接用rm.removeRow(int)表格自动刷新,为什么我更改表格的内容她却不呢。
我在Frame1 里面有一个jtable,一个defaulttablemode.一切工作正常。
然后再定义一个dialog类,再Frame1里面创建那个dialog类的实例(对象),并将dialog显示出来。
在操作dialog的时候,怎样刷新Frame1里面的表格。
我在Frame1里面这样定义:
static private defaulttablemode tm = new defaulttablemode();
private jtable tb = new jtable();
tb.setmode(tm);
这些都没有问题,然后定义:
static void public refresh(){
tm.fireTableDataChange()
}
在dailog类里面调用:
Frame1.refresh()
可还是不行。 不知道什么原因。
好像我删除表格的时候直接用rm.removeRow(int)表格自动刷新,为什么我更改表格的内容她却不呢。
|
你可以创建dialog类的时候,加入一个成员变量
比如
public MyDialog extends JDialog{
JFrame frm;
public MyDialog(final JFrame newFrame){
//...
frm = newFrame;
}
}
这样你在new MyDialog(this);由于是在Frame中生成dialog的,那么这个this就是这个Frame了.
然后你在dialog操作中调用那个Frame的操作应该是没有问题的吧.
frm.opration()
比如
public MyDialog extends JDialog{
JFrame frm;
public MyDialog(final JFrame newFrame){
//...
frm = newFrame;
}
}
这样你在new MyDialog(this);由于是在Frame中生成dialog的,那么这个this就是这个Frame了.
然后你在dialog操作中调用那个Frame的操作应该是没有问题的吧.
frm.opration()
|
用Frame1.repaint()看看
|
不知道你的数据是从什么地方取来的,如果是从数据库,你编辑完后有没有直接存回数据库?如果有不如再重新取一次
如果单改变一行或一列的话最多用手工setValueAt(row,col)了
如果单改变一行或一列的话最多用手工setValueAt(row,col)了
|
Frame1.refresh()不应该在dailog类里面调用。应该在Frame1所在的类中调用。
|
updateUI()试试