|
@@ -7,8 +7,10 @@ import javax.swing.*;
|
|
import javax.swing.event.ChangeEvent;
|
|
import javax.swing.event.ChangeEvent;
|
|
import javax.swing.event.ChangeListener;
|
|
import javax.swing.event.ChangeListener;
|
|
import javax.swing.plaf.basic.BasicSliderUI;
|
|
import javax.swing.plaf.basic.BasicSliderUI;
|
|
|
|
+
|
|
import java.awt.*;
|
|
import java.awt.*;
|
|
import java.awt.event.*;
|
|
import java.awt.event.*;
|
|
|
|
+import java.util.Hashtable;
|
|
|
|
|
|
/**
|
|
/**
|
|
* This Class represents a Panel where the User can start and stop the
|
|
* This Class represents a Panel where the User can start and stop the
|
|
@@ -205,17 +207,38 @@ public class TimePanel extends JPanel {
|
|
speedPanel.add(speedSlider);
|
|
speedPanel.add(speedSlider);
|
|
speedSlider.setPaintTicks(true);
|
|
speedSlider.setPaintTicks(true);
|
|
speedSlider.setPaintLabels(true);
|
|
speedSlider.setPaintLabels(true);
|
|
- speedSlider.setMaximum(5000);
|
|
|
|
- speedSlider.setMinimum(500);
|
|
|
|
- speedSlider.setValue(1000);
|
|
|
|
- // speedSlider.setMajorTickSpacing(100);
|
|
|
|
|
|
+ speedSlider.setMaximum(6);
|
|
|
|
+ speedSlider.setMinimum(0);
|
|
|
|
+ speedSlider.setValue(1);
|
|
|
|
+
|
|
|
|
+ speedSlider.setPaintLabels(true);
|
|
|
|
+ Hashtable<Integer, JLabel> table = new Hashtable<Integer, JLabel>();
|
|
|
|
+ table.put (0, new JLabel("1x"));
|
|
|
|
+ table.put (1, new JLabel("2x"));
|
|
|
|
+ table.put (2, new JLabel("4x"));
|
|
|
|
+ table.put (3, new JLabel("8x"));
|
|
|
|
+ table.put (4, new JLabel("16x"));
|
|
|
|
+ table.put (5, new JLabel("32x"));
|
|
|
|
+ table.put (6, new JLabel("64x"));
|
|
|
|
+
|
|
|
|
+ speedSlider.setLabelTable(table);
|
|
|
|
+
|
|
speedSlider.addChangeListener(new ChangeListener() {
|
|
speedSlider.addChangeListener(new ChangeListener() {
|
|
@Override
|
|
@Override
|
|
public void stateChanged(ChangeEvent e) {
|
|
public void stateChanged(ChangeEvent e) {
|
|
- controller.setTimerSpeed(speedSlider.getValue());
|
|
|
|
- speedSlider.setToolTipText("Speed: " + speedSlider.getValue());
|
|
|
|
|
|
+ /**
|
|
|
|
+ * Shifting Powers of two:
|
|
|
|
+ * e.g. 1<<0 -> 1 step per Second
|
|
|
|
+ * 1<<3 -> 8 steps per Second
|
|
|
|
+ * and so on,
|
|
|
|
+ */
|
|
|
|
+ int calculationsPerSecond = 1 << speedSlider.getValue();
|
|
|
|
+ controller.setTimerSpeed(1024 >> speedSlider.getValue());
|
|
|
|
+ speedSlider.setToolTipText("Speed: " + calculationsPerSecond + " Calculations per Second.");
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
+
|
|
|
|
+ speedSlider.setToolTipText("Change the Number of Calculations per Secons");
|
|
|
|
|
|
// Buttons and Speed Panel
|
|
// Buttons and Speed Panel
|
|
btnAndSpeedPanel.setLayout(new BorderLayout(0, 0));
|
|
btnAndSpeedPanel.setLayout(new BorderLayout(0, 0));
|