|
@@ -11,6 +11,7 @@ import javax.swing.ImageIcon;
|
|
|
import javax.swing.JButton;
|
|
|
import javax.swing.JPanel;
|
|
|
import javax.swing.JSlider;
|
|
|
+import javax.swing.Timer;
|
|
|
import javax.swing.border.LineBorder;
|
|
|
|
|
|
import ui.controller.Control;
|
|
@@ -22,12 +23,13 @@ public class TimePanel extends JPanel {
|
|
|
private Control controller;
|
|
|
|
|
|
JSlider timeSlider = new JSlider();
|
|
|
- private final JPanel timePanel = new JPanel();
|
|
|
private final JPanel timeBtnPanel = new JPanel();
|
|
|
private final JButton playBtn = new JButton();
|
|
|
private final JButton timeResetBtn = new JButton();
|
|
|
private final JButton timeForwardBtn = new JButton();
|
|
|
private final JButton timeBackwardBtn = new JButton();
|
|
|
+ private Timer timer;
|
|
|
+ private boolean running = false;
|
|
|
|
|
|
/**
|
|
|
*
|
|
@@ -37,6 +39,18 @@ public class TimePanel extends JPanel {
|
|
|
public TimePanel(Model model, Control controller) {
|
|
|
super();
|
|
|
this.model = model;
|
|
|
+
|
|
|
+ timer = new Timer(1000, new ActionListener() {
|
|
|
+ @Override
|
|
|
+ public void actionPerformed(ActionEvent ae) {
|
|
|
+ timeSlider.setValue(timeSlider.getValue() + 1);
|
|
|
+ if (timeSlider.getValue() == model.getIterations()) {
|
|
|
+ running = false;
|
|
|
+ timer.stop();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
//// Time Slider. Panels and Buttons
|
|
|
this.setLayout(new BorderLayout(0, 0));
|
|
|
|
|
@@ -59,6 +73,21 @@ public class TimePanel extends JPanel {
|
|
|
playBtn.setBorder(new LineBorder(Color.WHITE, 4));
|
|
|
playBtn.setIcon(new ImageIcon(new ImageIcon(this.getClass().getResource("/Button_Images/play.png")).getImage()
|
|
|
.getScaledInstance(30, 30, Image.SCALE_SMOOTH)));
|
|
|
+ playBtn.addActionListener(new ActionListener() {
|
|
|
+ @Override
|
|
|
+ public void actionPerformed(ActionEvent e) {
|
|
|
+ running = !running;
|
|
|
+ if (running) {
|
|
|
+ timer.start();
|
|
|
+ playBtn.setIcon(new ImageIcon(new ImageIcon(this.getClass().getResource("/Button_Images/pause.png")).getImage()
|
|
|
+ .getScaledInstance(30, 30, Image.SCALE_SMOOTH)));
|
|
|
+ } else {
|
|
|
+ timer.stop();
|
|
|
+ playBtn.setIcon(new ImageIcon(new ImageIcon(this.getClass().getResource("/Button_Images/play.png")).getImage()
|
|
|
+ .getScaledInstance(30, 30, Image.SCALE_SMOOTH)));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
timeResetBtn.setBorderPainted(false);
|
|
|
timeResetBtn.setBackground(Color.WHITE);
|
|
@@ -101,5 +130,4 @@ public class TimePanel extends JPanel {
|
|
|
this.add(timeBtnPanel, BorderLayout.WEST);
|
|
|
this.add(timeSlider);
|
|
|
}
|
|
|
-
|
|
|
}
|