瀏覽代碼

making my own slider class

tarfeef101 6 年之前
父節點
當前提交
96f0bf667a
共有 1 個文件被更改,包括 20 次插入3 次删除
  1. 20 3
      assignments/a2/src/main/java/Controls.java

+ 20 - 3
assignments/a2/src/main/java/Controls.java

@@ -18,14 +18,14 @@ public class Controls extends JPanel implements Observer
     this.setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
     this.setPreferredSize(new Dimension(1280,75));
     this.setMinimumSize(new Dimension(320, 75));
-    this.playback = new JSlider(0, 0, 0);
+    this.playback = new playSlider(0, 0, 0);
     playback.addChangeListener(new ChangeListener()
     {
       public void stateChanged(ChangeEvent e)
       {
-        if (!playback.getValueIsAdjusting() && playback.getValue() != model.getThingies().size())
+        if (!playback.settingLen() && playback.getValue() != model.getThingies().size())
         {
-          //if (playback.getValue() >= 1) model.changeThingy(playback.getValue() - 1);
+          if (playback.getValue() >= 1) model.changeThingy(playback.getValue() - 1);
         }
       }
     });
@@ -39,7 +39,9 @@ public class Controls extends JPanel implements Observer
     int len = model.getThingies().size();
     if (len > 0)
     {
+      playback.toggleSettingLen();
       playback.setMaximum(len);
+      playback.toggleSettingLen();
       playback.setValue(len);
     }
     this.setBackground(model.controlColour);
@@ -48,3 +50,18 @@ public class Controls extends JPanel implements Observer
   }
 }
 
+class playSlider extends JSlider
+{
+  private bool settingLen;
+  
+  public playSlider(int min, int max, int val)
+  {
+    super(min, max, val);
+    this.settingLen = false;
+  }
+  
+  public void toggleSettingLen()
+  {
+    this.settingLen = !settingLen;
+  }
+}