最近做一个实时监控系统,需要用表格显示信息,每隔一段时间刷新一下JTable,现在程序能够刷新,但是每刷新一次,内存就增大一点,导致最终出现内存溢出错误。
不知道是不是我用的方法不对?还要释放什么资源吗?当我将界面(JFrame)最小化时,内存突然就变得很小了,最大化后,又从小慢慢的增大Timer timerquality = new Timer(true);// 定时更新
timerquality.schedule(new MyMonitorTask(), 1000 * 5, 1000 * 5);// 5秒监控一次
class MyMonitorTask extends TimerTask { public void run() {
try {
EventQueue.invokeLater(new Runnable() {
public void run() {//更新JTable
String[][] resultplan ...;//数据
Object[] columnNames=...; //表头
// 表格初始化
tableModel.setDataVector(resultplan, columnNames);//tableModel为JTable的模式,全局变量
}
}); } catch (Exception ie) {
ie.printStackTrace();
}
finally{
//System.gc();
} }
不知道是不是我用的方法不对?还要释放什么资源吗?当我将界面(JFrame)最小化时,内存突然就变得很小了,最大化后,又从小慢慢的增大Timer timerquality = new Timer(true);// 定时更新
timerquality.schedule(new MyMonitorTask(), 1000 * 5, 1000 * 5);// 5秒监控一次
class MyMonitorTask extends TimerTask { public void run() {
try {
EventQueue.invokeLater(new Runnable() {
public void run() {//更新JTable
String[][] resultplan ...;//数据
Object[] columnNames=...; //表头
// 表格初始化
tableModel.setDataVector(resultplan, columnNames);//tableModel为JTable的模式,全局变量
}
}); } catch (Exception ie) {
ie.printStackTrace();
}
finally{
//System.gc();
} }
tableModel.setDataVector(resultplan, columnNames);//tableModel为JTable的模式,全局变量
这之前能不能把数据给清空掉