如何实现像eclipse中的控制台窗口那样动态的数字文字?
我想实现这样一个功能:
有一个循环的算法,每次得出一个结果我就在JTextArea中输出一条,而不是一次将结果全部输出。就像控制台里可以看到程序运行的一些信息一样,是动态的输出文本,这样可以知道程序正在运行中。
------解决方案--------------------把字串加起来不就成了。
------解决方案--------------------tb.setText(tb.getText()+ "新内容 ");
------解决方案--------------------直接让你的字符串append就行了
JTextArea有这个方法阿
你就
jta.append(str + "\n ");
------解决方案--------------------Swing包里所有的组件都有一个特征:
基于线程不安全。也就是说,在一个调用的函数体里定义了布局的改变,包括在组件里显示文字,都会等到这个函数执行完才会有效果。你是在说,如何动态来显示,包括函数还没有执行完就显示效果的那种,我告诉你:如果不设计线程,你绝对是做不到的。
那么,你写线程吧!
------解决方案--------------------哪里是线程的问题...
我想之所以看起来是一次输出结果, 主要是你的循环里面执行的运算并不需要很长的时间, 所以你感觉不到它是一行一行增量输出的
如果你想故意减慢输出的速度, 以达到一行一行的效果, 那就可以开一个线程, 每append一行, 就sleep(300);这样看起来就不会一次输出了
------解决方案--------------------JTextArea的显示多行与线程无关的,同意楼上的