【问题标题】:Thread, Wait, Notify, Sleep in JavaJava 中的线程、等待、通知、休眠
【发布时间】:2013-02-20 00:05:32
【问题描述】:

我正在开发/开发一个桌面应用程序,其中按钮具有动作侦听器并执行大量后台任务,我之前没有使用线程、等待、通知或睡眠。我只是很困惑该学习哪个,使用哪个,否则当我单击按钮时,JFrame 就会冻结。

1) 有人可以建议我使用什么更简单吗?

2) 我正在使用带有 setvalue(n) 方法的 jprogress bar,但我想用加载时间自动替换 n,我该怎么做?

【问题讨论】:

    标签: java sleep wait notify jprogressbar


    【解决方案1】:

    如果你使用 Swing 的 GUI,你应该使用“SwingWorker”类:

    http://docs.oracle.com/javase/tutorial/uiswing/concurrency/simple.html

    【讨论】:

      【解决方案2】:

      1) 当您单击按钮进入新线程时,您需要将运行的代码移动。这样的事情会起作用:

      public class Worker implements Runnable {
          Thread t;
          public Worker() {
              t = new Thread(this);
          }
          @Override
          public void run() {
              //do stuff here
          }
          public void start() {
              t.start();
          }
      }
      

      然后,当您单击 JFrame 中的按钮时:

      Worker w = new Worker();
      w.start();
      

      2) 您可以使用任何int 调用setProgress()(例如,在开始时获取当前时间,在结束时获取当前时间,所用时间= 结束开始)。只要确保你也使用过setMaximum()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-29
        • 2014-04-04
        • 2011-12-26
        • 1970-01-01
        相关资源
        最近更新 更多