TimePanel.java 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package ui.view;
  2. import java.awt.BorderLayout;
  3. import java.awt.Color;
  4. import java.awt.FlowLayout;
  5. import java.awt.Image;
  6. import java.awt.event.ActionEvent;
  7. import java.awt.event.ActionListener;
  8. import javax.swing.ImageIcon;
  9. import javax.swing.JButton;
  10. import javax.swing.JPanel;
  11. import javax.swing.JSlider;
  12. import javax.swing.border.LineBorder;
  13. import ui.controller.Control;
  14. import ui.model.Model;
  15. public class TimePanel extends JPanel {
  16. private Model model;
  17. private Control controller;
  18. JSlider timeSlider = new JSlider();
  19. private final JPanel timePanel = new JPanel();
  20. private final JPanel timeBtnPanel = new JPanel();
  21. private final JButton playBtn = new JButton();
  22. private final JButton timeResetBtn = new JButton();
  23. private final JButton timeForwardBtn = new JButton();
  24. private final JButton timeBackwardBtn = new JButton();
  25. /**
  26. *
  27. */
  28. private static final long serialVersionUID = 1L;
  29. public TimePanel(Model model, Control controller) {
  30. super();
  31. this.model = model;
  32. //// Time Slider. Panels and Buttons
  33. this.setLayout(new BorderLayout(0, 0));
  34. // Slider
  35. timeSlider.setPaintTicks(true);
  36. timeSlider.setPaintLabels(true);
  37. timeSlider.setMinorTickSpacing(1);
  38. timeSlider.setToolTipText("Time Slider");
  39. timeSlider.setMinimum(1);
  40. timeSlider.setMaximum(model.getIterations());
  41. timeSlider.setValue(1);
  42. timeSlider.setBackground(Color.WHITE);
  43. // Buttons
  44. timeBtnPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 0, 0));
  45. playBtn.setBorder(new LineBorder(Color.WHITE, 4));
  46. playBtn.setIcon(new ImageIcon(new ImageIcon(this.getClass().getResource("/Button_Images/play.png")).getImage()
  47. .getScaledInstance(30, 30, Image.SCALE_SMOOTH)));
  48. timeResetBtn.setBorder(new LineBorder(Color.WHITE, 4));
  49. timeResetBtn.setIcon(new ImageIcon(new ImageIcon(this.getClass().getResource("/Button_Images/reset.png"))
  50. .getImage().getScaledInstance(30, 30, Image.SCALE_SMOOTH)));
  51. timeResetBtn.addActionListener(new ActionListener() {
  52. public void actionPerformed(ActionEvent ae) {
  53. timeSlider.setValue(timeSlider.getMinimum());
  54. }
  55. });
  56. timeForwardBtn.setContentAreaFilled(false);
  57. timeForwardBtn.setBorder(new LineBorder(Color.WHITE, 4));
  58. timeForwardBtn.setIcon(new ImageIcon(new ImageIcon(this.getClass().getResource("/Button_Images/forward.png"))
  59. .getImage().getScaledInstance(30, 30, Image.SCALE_SMOOTH)));
  60. timeForwardBtn.addActionListener(new ActionListener() {
  61. public void actionPerformed(ActionEvent ae) {
  62. timeSlider.setValue(timeSlider.getValue() + 1);
  63. }
  64. });
  65. timeBackwardBtn.setBorder(new LineBorder(Color.WHITE, 4));
  66. timeBackwardBtn.setIcon(new ImageIcon(new ImageIcon(this.getClass().getResource("/Button_Images/backward.png"))
  67. .getImage().getScaledInstance(30, 30, Image.SCALE_SMOOTH)));
  68. timeBackwardBtn.addActionListener(new ActionListener() {
  69. public void actionPerformed(ActionEvent ae) {
  70. timeSlider.setValue(timeSlider.getValue() - 1);
  71. }
  72. });
  73. timeBtnPanel.add(timeResetBtn);
  74. timeBtnPanel.add(timeResetBtn);
  75. timeBtnPanel.add(timeBackwardBtn);
  76. timeBtnPanel.add(timeForwardBtn);
  77. this.add(timeBtnPanel, BorderLayout.WEST);
  78. this.add(timeSlider);
  79. }
  80. }