来回切换 Java 按钮图像?

发布于 2024-12-11 19:32:55 字数 612 浏览 0 评论 0原文

我有一个使用开关的程序,该开关在单击按钮时将动作事件传递给它:

public void buttonImageReveal(ActionEvent e){

    String temp = e.getActionCommand();

    switch(temp){

        case "1":
        ((JButton)e.getSource()).setIcon(one);
        delay();
        ((JButton)e.getSource()).setIcon(null);
        break;

延迟只是对一个等待 1 秒的函数的调用:

 public void delay(){
        try
        {
            Thread.sleep(1000); 
        }
            catch(InterruptedException e1)
        {
            e1.printStackTrace();
        }
    }

所有结果都是等待,没有图像,所需的结果是闪烁图像一秒钟。

提前致谢!

I have a program that uses a switch which has the action event passed to it on button click:

public void buttonImageReveal(ActionEvent e){

    String temp = e.getActionCommand();

    switch(temp){

        case "1":
        ((JButton)e.getSource()).setIcon(one);
        delay();
        ((JButton)e.getSource()).setIcon(null);
        break;

Delay is just a call to a function with a 1 second wait:

 public void delay(){
        try
        {
            Thread.sleep(1000); 
        }
            catch(InterruptedException e1)
        {
            e1.printStackTrace();
        }
    }

All that results is a wait and no image, the desired outcome is a flash of the image for a second.

Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱殇璃 2024-12-18 19:32:55

设置图标后,您将使线程休眠,因此它无法绘制新图标。睡眠结束后立即将图标设置为空。所以你永远不会看到图标被绘制。

您可以尝试定期使用javax.swing.Timer更改图标。

After setting the icon you are making the thread sleep so it can't paint the new icon. Immediately after sleep is over you set icon to null. So you will never see the icon painted.

You can try to change the icon using javax.swing.Timer periodically.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文