关于Java Swing怎么实时刷新JTextArea,以显示刚才加append的内容(线程角度)

static JTextArea result;

 

在代码中执行完textArea.append("message")后,如果你想让这个更新立刻显示在界面上而不是等swing的主线程返回后刷新,我们一般会在该语句后调用textArea.invalidate()和textArea.repaint()。问题是这个方法并不能有任何效果,textArea的内容没有任何变化,这或许是swing的一个bug,有一个笨拙的办法可以实现这个效果,就是执行以下语句textArea.paintImmediately(textArea.getBounds());

或

textArea.paintImmediately(textArea.getX(), textArea.getY(), textArea.getWidth(), textArea.getHeight());

这时,你会发现你刚才增加的消息已经被实时地显示出来了。


试过这两种方法都不行。
后来把字段改为静态的,
然后另外起了一个线程就好了

 

你可能感兴趣的:(java swing)