问个Swing的小问题,向TextArea追加数据,但是不及时显示,thank you!

若鱼1919 2012-09-28 05:34:09
程序有这么一段代码:
TextArea ta_log = new JTextArea(10,10);
ta_log.setLineWrap(true);
ta_log.setWrapStyleWord(true);
JScrollPane p_log = new JScrollPane(ta_log);

JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(p_top,BorderLayout.NORTH);
panel.add(p_log,BorderLayout.CENTER);
setContentPane(panel);

把ta_log添加到p_log上,然后添加到JFrame上,然后,我有一个log方法:

public static void dolog(String message){
if(ta_log != null){
ta_log.append(message);
ta_log.append("\r\n");
}
}

现在的问题是:
我调用dolog()向textarea里面追加数据,并不及时显示,而是等程序结束了才一块显示出来。

请问:怎么才能调用dolog()的时候就能把里面的内容显示出来啊?

...全文
429 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
若鱼1919 2012-09-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

Java code
SwingUtilities.invokeLater(new Runnable(){public void run(){dolog("..........");}});
[/Quote]

不好用,跟原来的效果是一样的,我是这么弄的:


public static void dolog(final String message) {
try{
SwingUtilities.invokeLater(new Runnable(){
@Override
public void run(){
if(ta_log != null){
ta_log.append(message);
ta_log.append("\r\n");
}
}
});
/*
if(ta_log != null){
ta_log.append(message);
ta_log.append("\r\n");
}
*/
}catch(Exception e){
e.printStackTrace();
}
}
raistlic 2012-09-29
  • 打赏
  • 举报
回复
代码不全,可能需要改你调用 dolog() 的那段代码……
shenhua 2012-09-29
  • 打赏
  • 举报
回复
Swing在数据更新也是重绘的时候可以使用
panel.getUI();
panel.revalidate();
若鱼1919 2012-09-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

引用 5 楼 的回复:

引用 2 楼 的回复:

Java code
SwingUtilities.invokeLater(new Runnable(){public void run(){dolog("..........");}});


不好用,跟原来的效果是一样的,我是这么弄的:

Java code

public static void dolog(fi……
[/Quote]

已经解决了,感谢回复。

我把业务处理放到一个单独的线程中,在里面调用dolog就能够及时刷新了。
oO临时工Oo 2012-09-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

引用 2 楼 的回复:

Java code
SwingUtilities.invokeLater(new Runnable(){public void run(){dolog("..........");}});


不好用,跟原来的效果是一样的,我是这么弄的:

Java code

public static void dolog(final String messag……
[/Quote]

你调用dolog()方法这块怎么写的
huntor 2012-09-28
  • 打赏
  • 举报
回复
SwingUtilities.invokeLater(new Runnable(){public void run(){dolog("..........");}});
  • 打赏
  • 举报
回复
JScrollPane设置可见宽高

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧