论坛首页 Java企业应用论坛

线程中使用javax.swing.Timer的问题。

浏览 2699 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-04-17  
这样一段代码,希望能够在执行的时候,显示一个进度条。但是每次进度条都要等到执行完了才显示出来,为什么呢?
			Progress p=new Progress(poi);
			Thread th=new Thread(p);
			try{
				th.start();
				//一段需要很长时间的代码
				//th.interrupt();
			}catch(Exception e){
				//th.interrupt();
			}


package com.ui;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import javax.swing.Timer;

public class Progress implements Runnable {
	Timer tm;
	ProgressMonitor pm;
	JFrame poi;
	int i;
	public Progress(JFrame poi){
		this.poi=poi;
	}
	public void run() {
		ActionListener actionListener=new ActionListener(){
			public void actionPerformed(ActionEvent e){
				pm.setProgress(++i==100?1:i);
			}
		};
		System.out.println(123);
		tm=new Timer(200,actionListener);
		pm=new ProgressMonitor(poi,"","正在导入,请稍候...",1,100);
		pm.setMillisToDecideToPopup(0);
		pm.setMillisToPopup(0);
		tm.start();
	}
}
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics