gpt4 book ai didi

java - 如何在 Swing 应用程序中使用延迟

转载 作者:行者123 更新时间:2023-12-03 12:57:36 24 4
gpt4 key购买 nike

我正在构建一个摆动应用程序。在某些时候,我必须开始一个“动画”:

...
jpanel1.setBackground(Color.Black);

Delay(milli)

jpanel1.setBackground(Color.White);
...

等等。

gui 本身及其背后的所有逻辑都可以工作。只是这次依赖于颜色变化而不是。我已经读过,该 Swing 不是线程安全的,但是我找到的所有示例都向我展示了如何启动另一个线程(例如在后台),但从来没有如何停止当前的 swing-gui 线程。

编辑:

该应用程序应如下工作:
  • 读取配置文件,设置jframe。
  • 有人问了一些简单的问题
  • 打开一个对话,解释动画。
  • 用户单击“确定”后,动画 - 一些颜色闪烁 - 开始。颜色和变色之间的延迟取决于配置
  • 打开另一个对话框,程序继续-> jframe、按钮等内的新 jpanel。

  • 网上的东西不行,就是换色之间的延迟。我现在明白为什么它不起作用了,我正在尝试构建一个计时器,它会激活一个 Action 列表,然后改变颜色并停止计时器......对于一个简单的延迟来说,它似乎有很多工作......而且我有重新组织应用程序中的整个动画。

    最佳答案

    看看:https://timingframework.dev.java.net/

    以及 http://filthyrichclients.org/ 中的样本

    它们提供了一些关于动画如何工作和使用 Timer 框架的非常好的信息。您将对它的工作原理有很好的了解。

    在阅读了这些之后,我在这里用 Swing 做了一个示例动画:

    count down demo app http://img580.imageshack.us/img580/742/capturadepantalla201004wd.png
    具有 blog.stackoverflow.com 页面的 Java 应用程序(单击图像查看演示视频)

    但我什至不确定你想要实现什么。

    编辑

    我阅读了计时框架以更好地理解所有内容,但我实际上并没有使用它(创建没有线性时间的动画很有用 - 即没有像我的每一秒,但是像 1、5、3 之类的东西, 2 秒 )

    我在上面的演示中使用的代码是 正好这个:

    final Timer imageTimer = new Timer();
    imageTimer.schedule( new TimerTask() {
    public void run() {
    changeImage();
    }
    }, 0, 10000 ); //<-- every 10 seconds.

    “stackoverflowing”和倒计时的动画使用类似的方法。

    关于java - 如何在 Swing 应用程序中使用延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2775550/

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