一般我们可以利用try{Thread.currentThread().sleep(1000)}catch(Exception e){}来达到延时的目的。
比如我们编写一个一秒输出一个数字的程序就可以:
for(int i=0;i<10;i++){
try{Thread.currentThread().sleep(1000)}
catch(Exception e){}
System.out.println(i);
}但应用与JFrame里面就有问题了。
比如我希望一些JButton每隔一段时间就设置一下icon,程序如下:
void draw(int [][] record){
for(int i=0;i<64;i++){
try{
Thread.currentThread().sleep(500);
b[i].setIcon(horse);
}
catch(Exception e){}
}
}
编译无错误,运行时无exception,但是实际显示效果是延时了64*500ms后所有icon一同设置。
我非常疑惑,希望高手指点指点。
比如我们编写一个一秒输出一个数字的程序就可以:
for(int i=0;i<10;i++){
try{Thread.currentThread().sleep(1000)}
catch(Exception e){}
System.out.println(i);
}但应用与JFrame里面就有问题了。
比如我希望一些JButton每隔一段时间就设置一下icon,程序如下:
void draw(int [][] record){
for(int i=0;i<64;i++){
try{
Thread.currentThread().sleep(500);
b[i].setIcon(horse);
}
catch(Exception e){}
}
}
编译无错误,运行时无exception,但是实际显示效果是延时了64*500ms后所有icon一同设置。
我非常疑惑,希望高手指点指点。
解决方案 »
- ArrayList怎么根据条数和页数取出相应的子list
- 关于接口的实现和内部类的问题
- 请问这句话对还是错啊?
- 我安装完tomcat 输入http://locallhost:8080为什么出现了windows的登陆窗口,让我输入用户名和密码?
- 请使用过httpunit的朋友进来. httpunit群专让JAVA程序员进行专项研究。
- JTextArea问题?
- 请告知广州哪间公司招聘java 程序员?
- 关于jdk 1.4 测试版安装的问题
- gui编程中数据传递问题
- 关于NullPointerException
- Runtime.exec(cmd)不能清IE缓存?
- java byte范围大于127,socket传送给c#,c#中byte怎么获得?
public void run(){
for(int i=0;i <64;i++){
try{
Thread.currentThread().sleep(500);
b[i].setIcon(horse);
}
catch(Exception e){}
}
}
});
try{Thread.chinese wholesalers().sleep(1000)}
catch(Exception e){}
System.out.println(i);
}
for(int i=0;i <64;i++){
try{
Thread.currentThread().sleep(500);
b[i].setIcon(horse);
}
catch(Exception e){}
}
}
这for里面不过设置了icon而已,并没有redraw!!!!!!!!!