首页 新闻 会员 周边 捐助

java swing 动态刷新jtable所在的frame

1
悬赏园豆:50 [已解决问题] 解决于 2014-10-10 20:11

大家好!

我初次使用java swing做GUI方面的开发,现在有一个问题想请教各位。

我现在有一个主框架MainJFraim, 还有一个含有Jtable的tableframe, 在主框架中程序会输出一个动态输出一些格式化信息, 我希望将这些信息输入tableframe中的jtable中,并且每输出一行,刷新jtable。

现在我的做法是,每次addrow, tableframe.repaint(),表格完全没有显示出来,只有一个tableframe显示出来了,tableframe中的菜单什么的都没显示,而且tableframe还关闭不掉,一点右上角关闭就卡死。

请问此种情况如何解决?

python27的主页 python27 | 初学一级 | 园豆:157
提问于:2014-10-09 11:04
< >
分享
最佳答案
0

用双线程。

一个线程显示页面。

另一个线程更新页面上的数据。

 

建一个内部类,实现Runnable接口,重写里面的run方法。

在第一个线程中把类new出来,再丢到另一个线程中。如下。

ShowData showData= new ShowData();
Thread thread = new Thread(showData);
thread.start();

收获园豆:50
生吃番茄酱 | 菜鸟二级 |园豆:204 | 2014-10-09 11:11

能不能说得再清楚一点,实际情况比较复杂,具体来说。

 

当我点击mainFrame中的“start”按钮时调用controller.start(MyCrawler.class, numberOfCrawlers); 然后我希望弹出一个tableFrame,而tableFrame中的内容是由MyCrawler类来动态更新的,目前MyCrawler类输出信息到stdout,我希望将这些信息输入到tableFrame中的table中。

 

目前我的做法是MainFrame中放入一个tableFrame的成员变量,当启动start时创建初始的tableFrame,然后希望MyCrawler类去写内容。此外,MyCrawler类已经定义了自己的Runnable方法,但是是别人的库,我看不见其具体实现。

 

python27 | 园豆:157 (初学一级) | 2014-10-09 15:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册