Java Runtime Environment工作的方式是只要有一個線程在運行,程序就不退出。這樣,當取消被調用,沒有其它線程在運行了,則程序退出。有一些系統線程在運行,如碎片收集程序。這些系統線程也被稱為后臺線程。后臺線程的存在不影響運行環境被關閉,只有非后臺線程保證運行環境不被關閉。
Javax.swing.Timer類與java.util.timer類的工作方式相似,但是有一些差別需要注意。第一,運行的作業被ActionListener接口的實現來定義。第二,作業的執行是在事件處理線程內部進行的,而不象java.util.Timer類是在它的外部。這是很重要的,因為它關系到Swing組件集是如何設計的。
如果你不熟悉Swing,它是一組可以被Java程序使用的圖形組件。Swing被設計程被稱為單線程的。這意味著對Swing類內部內容的訪問必須在單個線程中完成。這個特定的線程是事件處理線程。
這樣,例如你想改變Label組件的文字,你不能僅僅調用Jlabel的setText方法。相反,你必須確認setText調用發生在事件處理線程中,而這正是javax.swing.Time類派的上用場的地方。
為了說明這第二種情況,下面的程序顯示一個增加的計數器的值。每半秒鐘計數器的數值增加,并且新的數值被顯示:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Count
{
文章來源于領測軟件測試網 http://www.kjueaiud.com/