package com.vci.client.workflow.task; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JProgressBar; import javax.swing.Timer; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import com.vci.client.LogonApplication; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ProgressSample extends JDialog implements Runnable{ private Thread thread = null; private Thread taskThread = null; public ProgressSample(Thread thread){ super(LogonApplication.frame,true); this.thread = thread; progressBar(); startThread(); } private void progressBar() { final JProgressBar aJProgressBar = new JProgressBar(0, 100); aJProgressBar.setIndeterminate(true); JButton aJButton = new JButton("关闭"); ActionListener actionListener = new ActionListener() { public void actionPerformed(ActionEvent e) { dispose(); } }; aJButton.addActionListener(actionListener); this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); centerScreen(); Container contentPane = this.getContentPane(); contentPane.add(aJProgressBar, BorderLayout.CENTER); contentPane.add(aJButton, BorderLayout.SOUTH); this.setSize(300, 100); } /** * 显示在屏幕中间 * @param theFrame */ private void centerScreen() { this.setTitle("执行中。。。"); this.setSize(new Dimension(600,100)); this.setLayout(new BorderLayout()); this.setResizable(false); this.setModal(true); this.setLocation((Toolkit.getDefaultToolkit().getScreenSize().width-400)/2, (Toolkit.getDefaultToolkit().getScreenSize().height-100)/2); } private void startThread(){ taskThread = new Thread(){ public void run() { try { thread.start(); // 处理耗时任务 thread.join(); } catch (InterruptedException e) { e.printStackTrace(); } dispose(); }; }; taskThread.start(); } public void run() { } }