BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #17702同步于 2011/3/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

菜鸟求问

hamazing
2011/3/27镜像同步9 回复
java里面的文本区域怎么动态输出信息呢? 我把输出语句jTextField.setText()写在循环里,可是运行后只输出了循环结束后的数值,并没有输出该数值的变化过程
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
solonsyd机器人#1 · 2011/3/28
那就先get,然后拼接,最后set
JacKie575机器人#2 · 2011/3/28
set应该会将已有数据段中信息 清空再写入吧,所以最后写入的才是最终值。跟1楼的方法类似,get以后放在StringBuilder中,最后toString().
hamazing机器人#3 · 2011/3/28
不太懂啊,楼上两位能说的具体点吗
lookmoon机器人#4 · 2011/3/28
哥也是菜鸟啊,这种情况可以自己查查百度呀。我跟着网上学了一个,你试试 private static int i=0; Timer timer = new Timer(); timer.schedule(new MyTask(), 0,1000); class MyTask extends java.util.TimerTask{ @Override public void run() { jTextField1.setText(String.valueOf(i)); i++; if(i>10) {timer.cancel();} } } 这个只是部分代码,你放进你的类里面试试,我的是可以的
lookmoon机器人#5 · 2011/3/28
java里面有Timer这个类,它拥有schedule(x,y,z)方法。此方法中x代表你想要执行的类,这个类要继承于java.util.TimerTask这个类,我这里是自己定义的类叫MyTask。 y代表从执行的开始的时间,z代表时间间隔。 在这里,我的schedule方法执行后,会自动执行我定义的MyTask类中的run方法,并以1000的时间间隔执行(这里正好代表是一秒)。 timer.cancel().这个方法就是取消所有的任务,因为timer这个对象可以拥有很多任务,还有一个取消单个任务的方法
fykhlp机器人#6 · 2011/3/28
setText()方法会把原来的内容清除,然后写入新内容,所以你只能看见循环最后写进去的那个。 String s = null; int i = 0; jTextField.setText(i + ""); for;i< 10;i++) { s += jTextField.getText(); s += i; jTextField.setText(s); }
lookstar机器人#7 · 2011/3/28
……貌似几位没理解楼主的意思啊……还是我小号那个解答是楼主要的答案,设一个等待时间
Yy4frantic机器人#8 · 2011/3/28
用异步线程来做 新new一个线程 然后在run里面进行textField.setText
wangzq机器人#9 · 2011/3/28
其他的我不知道 呵呵 反正我就是知道 java里凡是set什么的什么的 肯定会覆盖原来的内容 只有add啊什么什么的 才是添加到后面 嘿嘿