import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.SwingUtilities;
/*
* Created on 28.02.2004
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
/**
* @author Administrator
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class SwingTest extends JFrame {
private JButton button;
private JPanel panel;
private Thread compareThread;
private ProgressJFrame pFrame;
private boolean stopped = false;
public SwingTest() {
super("Vektor Vergleich");
panel = new JPanel();
panel.setSize(400, 300);
panel.setLayout(new FlowLayout());
button = new JButton("VektorVergleich");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.out.println("start Vektorvergleich!");
doIt();
}
});
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
stopped = true;
}
});
compareThread = new Thread(new Runnable() {
public void run() {
// TODO Auto-generated method stub
for (int i = 0; i < 100 && !stopped; i++) {
System.out.println("Val: " + i);
final int val = i;
SwingUtilities.invokeLater(new Runnable() {
public void run() {
// TODO Auto-generated method stub
pFrame.updateBar(val);
}
});
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
setVisible(false);
dispose();
System.exit(0);
}
});
pFrame = new ProgressJFrame(0, 100, this);
setSize(400, 300);
setVisible(true);
}
public static void main(String[] args) {
new SwingTest().doIt();
}
/**
*
*/
private void doIt() {
compareThread.start();
}
class ProgressJFrame extends JFrame {
private JPanel pan;
private JProgressBar bar;
private int start;
private int end;
private JFrame frm;
public ProgressJFrame(int start, int end, JFrame frm) {
super("Progress JFrame");
this.start = start;
this.end = end;
this.frm = frm;
pan = new JPanel();
pan.setSize(200, 50);
pan.setLayout(new FlowLayout());
bar = new JProgressBar();
bar.setMinimum(start);
bar.setMaximum(end);
pan.add(bar);
getContentPane().add(pan);
setSize(200, 50);
Point loc = frm.getLocation();
loc.setLocation(
loc.getX() + 400 + 50,
loc.getLocation().getY());
setLocation(loc);
setVisible(true);
}
public void updateBar(int val) {
bar.setValue(val);
}
}
}