2013-01-18 103 views
1

我想這樣做: 雖然主線程運行,但我想要執行一系列操作而不干擾主線程並凍結swing組件,並且我可以強制停止執行主線程。而其中的一個動作可以操縱擺動組件。從線程內部操作Swing組件

一些代碼,以幫助想象:

public class Test extends JFrame{ 
    public Test() 
    { 
     super("Test"); 
     JButton button = new JButton("Stop!"); 
     button.addActionListener(new ActionListener() 
     { 
      @Override 
      public void actionPerformed(ActionEvent e) 
      { 
       //STOP THE EXECUTION 
      } 
     }); 
     this.add(button); 

     //START OF EXECUTION 
      System.out.println("FOO"); 
      System.out.println("BAR"); 
      button.setText("Hello"); 
      System.out.println("THIS"); 
     //END OF THE EXECUTION 

     this.pack(); 
     this.setVisible(true); 
    } 
} 

我已經試過只使用線程時,它拋出異常,我忘了,這個例外是,但基本上說,我不能操縱Swing組件從非AWT線程或其他東西。

之後,我嘗試使用線程和swingUtilities,但他們執行完成後的揮杆組件操作。我該怎麼做呢?

回答