package com.hmilyld;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.reflect.InvocationTargetException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.ProgressMonitor;
public class DemoMonitor extends JPanel implements ActionListener{
private JButton btn = new JButton("submit");
DemoMonitor(){
btn.setActionCommand("run");
setLayout(new BorderLayout());
add(btn, BorderLayout.PAGE_END);
btn.addActionListener(this);
}
public static void createGui(){
JFrame frame = new JFrame("test");
frame.getContentPane().add(new DemoMonitor());
frame.setSize(200,200);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
}
public static void main(String[] args) throws InterruptedException, InvocationTargetException {
javax.swing.SwingUtilities.invokeAndWait(new Runnable(){
public void run(){
createGui();
}
});
}
public void actionPerformed(ActionEvent evt) {
if("run".equals(evt.getActionCommand())){
Thread thread = new Thread(new Runnable(){
public void run(){
ProgressMonitor monitor = new ProgressMonitor(btn,"progress info","note",0,10000);
monitor.setProgress(0);
btn.setEnabled(false);
for (int i=0;i<=10000;i++){
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
monitor.setProgress(i);
monitor.setNote("正在读取:"+String.valueOf(i/100)+"%");
System.out.println(i/100);
}
btn.setEnabled(true);
}
});
thread.start();
}
}
}