当前位置 : 主页 > 编程语言 > java >

关于swing界面label和button的动态设置文字

来源:互联网 收集:自由互联 发布时间:2022-07-22
在引入发送验证码功能后,想让button的文本动态变化,发现如下方法并不能做到: int limitSec=10; while(limitSec0){ sendyzhm.setEnabled(false); sendyzhm.setText(limitSec + "秒后再获取"); try { Thread.sleep(1

在引入发送验证码功能后,想让button的文本动态变化,发现如下方法并不能做到:

int limitSec=10;

while(limitSec>0){

sendyzhm.setEnabled(false);
sendyzhm.setText(limitSec + "秒后再获取");
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
Logger.getLogger(UserRegister.class.getName()).log(Level.SEVERE, null, ex);
}
//limittime.setText(limitSec + "秒后再获取");
limitSec--;

}

正确的做法如下:

new Thread(new TimerRunable() {

public void run() {
int limitSec = 10;
while (limitSec > 0) {
yzm.setEnabled(false);
yzm.setText(limitSec + "秒后再获取");
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
limittime.setText(limitSec + "秒后再获取");
limitSec--;
System.out.println(limitSec);
}
//倒计时结束
limittime.setVisible(false);
yzm.setEnabled(true);
yzm.setText("发送验证码");

}

}).start();

唯有热爱方能抵御岁月漫长。



网友评论