package AlgorithmAnimation;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
* Acest frame afiseaza masivul pe timp ce este sortat.
* si deasemenea butone ce permit parcurgerea sortarii pe pasi sau pornirea ei
* fara pauza
* @author Dan
*
*/
public class AnimationFrame extends JFrame
{
/**
*
*/
private static final long serialVersionUID = 1L;
public AnimationFrame()
{
ArrayPanel panel = new ArrayPanel();
add(panel, BorderLayout.CENTER);
Double[] values = new Double[VALUES_LENGTH];
final Sorter sorter = new Sorter(values,panel);
JButton runButton = new JButton("Run");
runButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
sorter.setRun();
}
});
JButton stepButton = new JButton("By Step");
stepButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
sorter.setStep();
}
});
JPanel buttons =new JPanel();
buttons.add(runButton);
buttons.add(stepButton);
add(buttons, BorderLayout.NORTH);
setSize(WIDTH, HEIGHT);
for(int i = 0; i<values.length;i++)
{
values[i] = new Double(Math.random());
}
Thread t = new Thread(sorter);
t.start();
}
private static final int WIDTH = 300;
private static final int HEIGHT = 300;
private static final int VALUES_LENGTH = 30;
}