当我点击设置按钮图标时,如何将设置定时器的java代码编码到我的按钮,并且当我的按钮图标必须显示时,图标必须为时间结束设置为空。
我尝试过以下方式,但是当我不点击按钮
时它就可以了private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
timer = new Timer(5000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if(chromeShown) {
jButton3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/r/ajaxloading.gif")));
chromeShown = true;
} else {
jButton3.setIcon(null);
chromeShown = false;
}
}
});
timer.start();
this.getContentPane().add(JButton);
this.setVisible(true);
答案 0 :(得分:2)
根据我对你的问题的理解,你的逻辑有点偏差,行动应该遵循类似的行为
按钮单击 - >图标已更改 - >计时器开始...(等待)...... - >定时器触发 - >图标已更改。
目前,您正在尝试更改Timer
中图标的初始状态,这没有任何意义。我想你想做更像这样的事情......
click.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
click.setEnabled(false);
click.setText("I'm running >>");
Timer timer = new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
click.setText("I be done");
click.setEnabled(true);
}
});
timer.start();
}
});
基本上,单击按钮时,会设置按钮的文本并禁用按钮(因此您无法再次单击它),1秒后,它会更改文本并启用按钮