gpt4 book ai didi

Java Swing - 闪烁图标不显示

转载 作者:行者123 更新时间:2023-12-04 20:09:59 25 4
gpt4 key购买 nike

我正在尝试使用 GlassPane 将图标闪烁给用户。我正在运行一个 javax.swing.Timer,它基本上执行此操作:

for (int i = 0; i < 3; i++) {
frame.getGlassPane().setVisible(true);
try {
Thread.sleep(500);
} catch (InterruptedException e1) {
//To change body of catch statement use File | Settings | File Templates.
e1.printStackTrace();
}
frame.getGlassPane().setVisible(false);
}

不幸的是,如果我让 EDT(计时器中的当前线程) hibernate ,则图标不会显示,因为 paintComponent 方法在线程进入 hibernate 之前无法完全调用。因此,当下一条指令启动时,玻璃 Pane 被隐藏,因此图标永远不会显示。有没有办法使用这种(类似的)方法实现我想要的?

最佳答案

您可以使用 javax.swing.Timer

public FlashTimer() {

javax.swing.Timer flashTimer = new javax.swing.Timer(500, new FlashHandler());
flashTimer.setCoalesce(true);
flashTimer.setRepeats(true);
flashTimer.setInitialDelay(0);

}

public class FlashHandler implements ActionListener {

private int counter;

@Override
public void actionPerformed(ActionEvent ae) {

countrol.setVisible(counter % 2 == 0);
counter++;
if (counter > 3) {

((Timer)ae.getSource()).stop();

}

}

}

关于Java Swing - 闪烁图标不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11966681/

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