WEB 开发 开发语言 Java 技术 .Net 技术 数 据 库 硬件使用
图象媒体 Linux/Unix 移动平台 嵌入开发 Windows 专区 软件工程
Ajax 技术 | ASP | PHP | ASP.NET | C# | JSP | Access | Oracle | 网页设计 | Flash | 安全专题 | IIS | VC/MFC | Delphi | C/C++
 你的位置:首页 > Java 技术 > J2SE / 基础类

关于JTable的简单问题,在线等
[ 来源:ITWENKU 时间:2006-9-7 19:43:10 | 浏览:199人次 ]

代码如下,很简单:目的就是当我点击按钮后,希望JTable立即刷新.

但问题有两个,如下:
1.点按钮后刷新不了,需要我手动刷新后(例如用鼠标拖动来改变窗体大小),才能正确显示.
2.我现在来办法是,先把JTable从窗体中Remove掉,再创建个新的JTable,然后再add上去。但是我觉得这种办法有点不好,有没有直接update的办法?

非常感谢!分不够再加!

import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class TableTest extends JFrame{
JTable JJ;
public TableTest(){
Object[][] data=new Object[20][2];
Object header[]= {"Name","Height"};
for (int i=0;i<20;i++)
for (int j=0;j<2;j++)
data[i][j]="table1";
JJ = new JTable(data,header);
setLayout(new BorderLayout());
add(JJ,BorderLayout.CENTER);

JButton BB = new JButton("Update");
BB.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent me){
Object[][] dt=new Object[10][2];
Object hd[]= {"Type","Area"};
for (int i=0;i<10;i++)
for (int j=0;j<2;j++)
dt[i][j]="table2";

updateTable(dt,hd);
}
});

add(BB,BorderLayout.SOUTH);

}

public void updateTable(Object [][] data,Object[] header){
remove(JJ);
JJ = new JTable(data,header);
add(JJ,BorderLayout.CENTER);
}

public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
TableTest KK = new TableTest();
KK.setBounds(0,0,300,300);
KK.setVisible(true);
KK.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}



在点击按钮的时候调用JTable的updateUI方法
javax.swing.JTable aa=new javax.swing.JTable();
aa.updateUI();


多谢多谢。
我加了句TableTest.this.JJ.updateUI();果然就可以了。

但是请问你能回答我第二个问题么?


你第二个问题不就是你解决你第一个问题的方法吗?
还有什么疑问撒?


就是说必须先remove,然后再add才能刷新么?


aa.updateUI();这样就可以刷新了啊


那为什么我把
public void updateTable(Object [][] data,Object[] header){
remove(JJ);
this.JJ = new JTable(data,header);
add(JJ,BorderLayout.CENTER);
}

改成
public void updateTable(Object [][] data,Object[] header){
this.JJ = new JTable(data,header);
}

以后,即使用了updateUI()也刷新不了?


不用remove
paint(Graphics g)重绘方法应该也可以,不过没有试过


哦,知道了.
谢谢,揭贴


aa.repaint();是这个重绘
上面错了

 相关文章
·菜鸟的问题,请教!
·接口修饰符
·关于多线程的问题?
·我找不到这个程序的错误,请帮忙,谢谢。
·高手进来:DataInputStream的用途
·StringBuffer类对象的"="问题

 推荐文章
你们帮我改一下这个程序,它的界面怎么没有!
程序为什么会出现这样的异常
Socket问题
finally的神秘问题
右移>>>的问题
如果一个类里的构造函数含有本身类的对象,那该怎么处理的或怎么理解的?
大家遇到过jvm coredump的情况吗
请教: JDBC怎么传一个数(字符串)给数据库?(调用数据库的function)
编写一个java程序
接口修饰符
求救:循环问题,在线等!!!
js里的document.write总是转到新的页面输出???
 版权所有:IT问库
copyright © 2006 www.itwenku.cn all rights reserved.