我有一些标签,当按下字母a时变得可见。
private void formKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if(evt.getKeyCode()==KeyEvent.VK_A){
jLabel7.setVisible(true);
jLabel8.setVisible(true);
jLabel9.setVisible(true);
myBlink();
}
我在计时器 myBlink() 上有标签
8public void myBlink()
{
new Timer(1000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("begin");
jLabel8.setVisible(false);
jLabel8.setVisible(true);
System.out.println("Timer");
}
}).start();
}
我已经放置了printlns以查看计时器是否开始和结束,当我按"a"键时,我的输出显示多次开始计时器,但我的标签没有出现和消失。 这段代码需要什么调整? 我错过了什么? 谢谢你多了一双眼睛。
这可能是因为您连续调用setVisible(false)
并且setVisible(true)
完成得太快而看不到,您应该使用变量并在调用Timer
操作时随时修改其值,如下所示:
public void myBlink()
{
new Timer(1000, new ActionListener() {
boolean visible = true;
public void actionPerformed(ActionEvent e) {
jLabel8.setVisible(visible = !visible);
}
}).start();
}