事件中的事件派发线程

时间:2015-07-10 02:58:30

标签: java swing event-dispatch-thread

对于学习目的,我正在努力使用Timer,TimerTask和SwingWorker运行线程 WITHOUT 。来自PHP背景EDT是一个新的&我也很难理解,我需要你了解我的情况。

我创建/构造了以下代码,但是我想问一下这个线程安全吗?这让我更加困惑,因为我在另一个线程上问这个问题,他们只是说这是安全的,但很难看。他们只是说句子,我会认为它不安全,因为Thread.sleep()来自主线程,为什么它安全?

startButton.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent arg0) {

//========================================================================

       Thread worker = new Thread() {
           public void run() {

            // Simulate doing something useful.
            for(int i=0; i<=10; i++) {

             final int count = i;

             SwingUtilities.invokeLater(new Runnable() {
              public void run() {
               countLabel1.setText(Integer.toString(count));
              }
             });




             try {
              Thread.sleep(1000);
             } catch (InterruptedException e) {}
            } // end loop



            SwingUtilities.invokeLater(new Runnable() {
             public void run() {
              statusLabel.setText("Completed.");
             }
            });

           }
          };

          worker.start();


//==========================================================================       




   }
  });

0 个答案:

没有答案