【问题标题】:How can i make a JSlider modify a threads sleep time?如何让 JSlider 修改线程睡眠时间?
【发布时间】:2015-01-28 18:33:18
【问题描述】:

目前在 Java swing 中制作一个 GUI,可以为排序算法设置动画,而paint 方法使用 Thread.sleep,所以我看到它正在被绘制。想知道如何添加一个可以改变 Thread.sleep 时间增加或减少的滑块。

【问题讨论】:

    标签: java multithreading swing


    【解决方案1】:

    在侦听JSlider 的类和休眠的Thread 对象之间以某种方式共享一个值(例如AtomicInteger)。

    确保代码线程安全,以便休眠的线程可以看到正确的最新值。

    【讨论】:

    • “线程也安全吗?”如果要传达的消息是单个 int 值,并且通过 AtomicInteger 实例传递,那么还有什么比这更安全的呢?
    • @jameslarge 我并不是专门说要使用 AtomicInteger,这是一种可能的方法的建议,所以保持它线程安全的评论提醒在任何使用的解决方案中这样做,无论是否使用 AtomicInteger .
    【解决方案2】:

    您可以去here 获取一些关于使用 JSlider 的示例。您只需获取更改后的值并通过此值修改您的睡眠时间。通过一个简单的变量。

    【讨论】:

      【解决方案3】:

      我认为这是不可能的。您可以尝试这样做,但我不确定它是否会起作用:

      int a;
      Thread.sleep(a);
      

      如果这没有给出任何错误,那么您可以使用它。

      【讨论】:

        猜你喜欢
        • 2012-08-08
        • 1970-01-01
        • 1970-01-01
        • 2018-08-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-02
        • 1970-01-01
        相关资源
        最近更新 更多