现在的位置: 首页 > 综合 > 正文

Java学习笔记——A simple Thread with Swing

2013年01月09日 ⁄ 综合 ⁄ 共 1581字 ⁄ 字号 评论关闭

前言:最近实在无聊,前段时间有人问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环境的直接拷贝代码后保存成类同名文件,编译下就可以运行了。注意拷贝过去后源代码函数后的省略号一定要祛除,不然程序是不能编译通过的。

抱歉!评论已关闭.