关于java 界面的JTextArea问题。

我用java编了一个界面,里面有一个JTextArea,我本想让随着程序的运行,一条条的将信息追加到JTextArea中(我用的是append方法)显示出来,但真实的效果... 我用java编了一个界面,里面有一个JTextArea,我本想让随着程序的运行,一条条的将信息追加到JTextArea中(我用的是append方法)显示出来,但真实的效果是,程序全运行完之后,内容才会在JTextArea中显示出来。而且在程序运行的过程中,点下去的那个JButton也一直是被按下的状态,就好像一切都静止在那了,直到程序全运行完,那个按钮才弹起来。
希望高手进来,帮我解决一下这个问题。
展开
 我来答
隔壁老王叨叨叨
2011-07-04 · TA获得超过7699个赞
知道大有可为答主
回答量:2710
采纳率:0%
帮助的人:2515万
展开全部
解决代码问题就需要贴代码,你不贴代码谁知道你是怎么写的?

不过,看你的情况我也能猜到你的代码是怎么个结构——你添加信息的方法应该是通过一个for循环或者while循环填进JTextArea中去的,对不对?因为在这种情况下,循环结构体的代码不执行完毕,你的JButton才会一直保持在被按下的状态,只有等循环体中的代码完全执行完毕才会弹起。

解决方法:
要想实现你要的效果,需要用到线程,实现Runnable接口就可以,在run方法中,代码如下:
public void run()
{
while(nowPoint < textinfo.length)
{
textArea.append(textinfo[nowPoint]);
Thread.sleep(100);
}
}
方法中的textinfo是你想要添加的信息的数组,在方法外定义;nowPoint是当前添加条目的索引,在方法外定义。

在JButton的事件方法中,只需要启动线程就行了。
new Thread(this).start();//注意,这里并没有检测当前是不是有线程在运行,所以你连续多次点击这个button的话,会发现条目添加的速度=实际速度*你点击button的次数.

除了线程,还以使用Timer来实现,跟Thread的道理是一样的,但是启动一个定时的任务。这样的话,你就能看见你的JTextArea每隔一会儿就添加一条信息了。
kangkui42
2011-07-04 · TA获得超过558个赞
知道小有建树答主
回答量:975
采纳率:0%
帮助的人:398万
展开全部
我做一个JAVA界面,把jtextarea放到 jScrollPane上,jScrollPane放到Jpanel上还有就是为JTextArea设置大小,设置的较大一点,这样出来的几率更大。Java
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式