解决方法:利用JTextArea从类 javax.swing.JComponent 继承来的方法paintImmediately来立即刷新JTextArea即可。比如在一条追加数据的语句
JTextArea2.append("进程2输出完毕!\n");//紧跟在此后面加上下面语句即可
JTextArea2.paintImmediately(JTextArea2.getBounds());
其中getBounds()方法是获得组件的边界,API中对getBounds方法是这样说的:
public Rectangle getBounds() 获得此对象的边界,用 Rectangle 对象的形式表示它。这些边界了指定此对象的宽度、高度和相对其父对象的位置。
ps:
JTextArea若只用append()函数会等到整个类方法运行完后才会将添加的内容统一添加到文本框中显示,之前只会暂存于缓存中,所以及时添加并显示文本要有两步:
JTextArea.append("you text");
JTextArea.paintImmediately(JTextArea.getBounds());