关于java中TextField使用setText()方法时的最后显示问题(为什么只能显示最后一次的)?
是这样,我设计的一个java的GUI程序,是一个模拟windows的查询功能的程序,我想把每一个查询到的文件或文件夹名都依次快速显示在一个文本框里,就用TextField...
是这样,我设计的一个java 的GUI程序,是一个模拟windows的查询功能的程序,我想把每一个查询到的文件或文件夹名都依次快速显示在一个文本框里,就用TextField的setText()方法,可是发现这个方法只能把最后一次调用时的内容显示出来,其他的根本不显示,文本框还是空白。多线程也解决不了这个问题。或者是不是有类似缓冲区的东西,怎么设置呢?希望高手们指教。哦,对了,TextArea的setText()方法也有这种问题。
三位说的我明白,我的意思并不是想在最后同时一起显示字符串,而是想实时的显示,就是每次用setText()方法,就在TextField理显示出来,然后找到下一个的时候,就显示下一个,把上一个的覆盖掉,并不显示上一个的。但是运行的时候却只能显示最后一个的,过程中TextField理一直是空白。 展开
三位说的我明白,我的意思并不是想在最后同时一起显示字符串,而是想实时的显示,就是每次用setText()方法,就在TextField理显示出来,然后找到下一个的时候,就显示下一个,把上一个的覆盖掉,并不显示上一个的。但是运行的时候却只能显示最后一个的,过程中TextField理一直是空白。 展开
5个回答
展开全部
事实上除非你查询的结果有几十万,不然的话根本就看不见那种实时的情况,因为计算快,所以结果直接出来的。。。。
你如果要看见结果一个个出来的话,你可以用thread,然后控制它显示的速度。。。
你如果要看见结果一个个出来的话,你可以用thread,然后控制它显示的速度。。。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就像楼上两位说的那样,我说的具体点吧...
你每次setText(),就是把括号里的内容显示在TextArea或TextField.
举个例子.
tArea.setText("1");
tArea.setText("2");
tArea.setText("3");
读第一行的时候TextArea里面显示“1”
第二行的时候“2”把前面的“1”删除,TextArea里面就显示“2”
最后TextArea里面只会显示“3”.
楼上两位也给了你解决的方法.
你如果要“1”“2”“3”全部显示的话就这样
tArea.setText("1");
tArea.setText(tArea.getText()+"\n2");
tArea.setText(tArea.getText()+"\n3");
这次setText就是先把TextArea里面取下来,加上最新的,再放上去。
因为setText()括号里面是string所以你可以用\n另起一行.
你每次setText(),就是把括号里的内容显示在TextArea或TextField.
举个例子.
tArea.setText("1");
tArea.setText("2");
tArea.setText("3");
读第一行的时候TextArea里面显示“1”
第二行的时候“2”把前面的“1”删除,TextArea里面就显示“2”
最后TextArea里面只会显示“3”.
楼上两位也给了你解决的方法.
你如果要“1”“2”“3”全部显示的话就这样
tArea.setText("1");
tArea.setText(tArea.getText()+"\n2");
tArea.setText(tArea.getText()+"\n3");
这次setText就是先把TextArea里面取下来,加上最新的,再放上去。
因为setText()括号里面是string所以你可以用\n另起一行.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个方法默认设置就是把原来的文本所覆盖,如果需要显示原来的文本基础上再添加文本,可以如下面的代码:
textField.setText(textField.getText()+"新的文本");
这样可以在文本后面添加新的文本
如果需要换行可以加上转义字符\n,windows可能要用\r\n代替,
当然java提供跨平台的获取换行转义字符方法:
System.getProperty("line.separator", "\n");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那你要这样写了啊
textField.setText(textField.getText()+newText);
setText注意他的意义哦。他就是把他的内容设成参数这样。
textField.setText(textField.getText()+newText);
setText注意他的意义哦。他就是把他的内容设成参数这样。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你解决了吗,怎么弄的,可以告诉我一下吗,我也是想一个个的显示,线程没用(或许是我不会用)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询