前言:最近實在無聊,前段時間有人問JTable是否有排序的Method,我以為這樣基本的功能應該有,但是最近幾天的探索告訴我,答案是:沒有。當然不排除有的可能性,呵呵。還在慢慢研究中,自己其實是什麼都不懂呀~啊哈哈 。實在是無聊死了,對Swing又沒有什麼好寫的東西出來,最近地圖編輯器也擱置很久了,原因有很多,開學了也是其中之一。時間不是我一個人的呀……
回想起以前看過的Thread,就隨手弄個出來添點東西也好。真的是最簡單的東西了,也真不好意思這樣濫竽充數呀,呵呵。這個可以算是最簡單的Swing的線程程式了,就是做一個JLabel,然後寫新的資料進去,內容就是說開啟程式經過的秒數:
// ThreadPrint.java
// Console program to print charactors
import java.awt.*;
import javax.swing.*;
public class ThreadPrint extends JFrame implements Runnable...{
int number = 0;
Thread runner;
/** *//**
* Method run
*
*
*/
public void run() ...{
while(true) ...{
JLabel label =
new JLabel("程式開始到現在經過的時間為:" + number++ +"秒。");
try ...{
Thread.sleep(1000);
}
catch(InterruptedException ie) ...{
}
this.getContentPane().removeAll();
this.getContentPane().add(label, BorderLayout.CENTER);
this.pack();
}
}
public ThreadPrint() ...{
super("Print Number per second.");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
runner = new Thread(this);
runner.start();
}
public static void main(String[] args) ...{
ThreadPrint tp = new ThreadPrint();
tp.setVisible(true);
}
}
哎,實在是慘不忍睹啊!
要實現Thread,必須要實現Runnable這個介面。實現run()函數後,調用一個start()就可以讓程式跑起來了。關鍵的地方還是在run()內部用了一個無限迴圈,然後最後pack()了一下,不然,程式可是不會自動重新整理介面的,那也就看不到時間的經過咯~runner = new Thread(this);這句也就是把當前對象加到線程中去。應該很簡單的程式吧,不懂的人注意下run()和start()的關聯就可以了,呵呵。
有JDK環境的直接拷貝代碼後儲存成類同名檔案,編譯下就可以運行了。注意拷貝過去後原始碼函數後的省略符號一定要祛除,不然程式是不能編譯通過的。