gpt4 book ai didi

java - 计时器适用于 println 但不适用于使用 java 的标签

转载 作者:行者123 更新时间:2023-11-29 04:45:09 25 4
gpt4 key购买 nike

我有一些标签,当按下字母 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() 上有 Label8

public 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”键时,我的输出多次显示 begin Timer,但我的标签没有出现也没有消失。这段代码需要什么调整?我错过了什么?感谢您的额外关注。

最佳答案

这可能是因为你先后调用了setVisible(false)setVisible(true),速度太快看不到,你应该使用一个变量并修改它每次 Timer 的 Action 被调用时的值如下:

public void myBlink()
{
new Timer(1000, new ActionListener() {
boolean visible = true;
public void actionPerformed(ActionEvent e) {
jLabel8.setVisible(visible = !visible);
}
}).start();
}

关于java - 计时器适用于 println 但不适用于使用 java 的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37499925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com