X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSlider.java;h=714e7709234c58f89057399c56580667aa1f72be;hb=1db943794a28bdd593776ef14fe5ef9f3cd50ba8;hp=b913ba0ea3cf518b34ba5382eb835c90080453ab;hpb=b645f92e338a4eea33bd2813c27917fb0fe5cc4d;p=jalview.git diff --git a/src/jalview/gui/Slider.java b/src/jalview/gui/Slider.java index b913ba0..714e770 100644 --- a/src/jalview/gui/Slider.java +++ b/src/jalview/gui/Slider.java @@ -16,6 +16,12 @@ import javax.swing.JSlider; public class Slider extends JSlider { /* + * the number of nominal positions the slider represents + * (higher number = more fine-grained positioning) + */ + private static final int SCALE_TICKS = 1000; + + /* * 'true' value corresponding to zero on the slider */ private float trueMin; @@ -29,7 +35,7 @@ public class Slider extends JSlider * scaleFactor applied to true value range to give a * slider range of 0 - 100 */ - private int sliderScaleFactor; + private float sliderScaleFactor; /** * Constructor that rescales min - max to 0 - 100 for the slider @@ -57,7 +63,7 @@ public class Slider extends JSlider trueMin = min; trueMax = max; setMinimum(0); - sliderScaleFactor = (int) (100f / (max - min)); + sliderScaleFactor = SCALE_TICKS / (max - min); int sliderMax = (int) ((max - min) * sliderScaleFactor); setMaximum(sliderMax); setSliderValue(value); @@ -75,7 +81,7 @@ public class Slider extends JSlider */ int value = getValue(); return value == getMaximum() ? trueMax - : value / (float) sliderScaleFactor + trueMin; + : value / sliderScaleFactor + trueMin; } /** @@ -85,7 +91,7 @@ public class Slider extends JSlider */ public void setSliderValue(float value) { - setValue((int) ((value - trueMin) * sliderScaleFactor)); + setValue(Math.round((value - trueMin) * sliderScaleFactor)); } /**