Browse Source

Play/Pause

Kevin Trometer 7 years ago
parent
commit
848294311a
4 changed files with 30 additions and 4 deletions
  1. BIN
      res/Button_Images/pause.png
  2. BIN
      res/Button_Images/stop.png
  3. 0 2
      src/ui/view/GUI.java
  4. 30 2
      src/ui/view/TimePanel.java

BIN
res/Button_Images/pause.png


BIN
res/Button_Images/stop.png


+ 0 - 2
src/ui/view/GUI.java

@@ -17,8 +17,6 @@ import javax.swing.JTable;
 import javax.swing.tree.DefaultTreeModel;
 import javax.swing.tree.TreeCellRenderer;
 
-import com.sun.javafx.TempState;
-import com.sun.xml.internal.bind.v2.TODO;
 
 import ui.controller.Control;
 import ui.model.*;

+ 30 - 2
src/ui/view/TimePanel.java

@@ -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);
 	}
-
 }