Note that there are some explanatory texts on larger screens.

plurals
  1. POUsing paintThumb I've made my arrow fall off the JSlider when at 0 or 100, how can this be fixed?
    primarykey
    data
    text
    <p>The picture explains it all. I've painted a new Thumb and it goes off the JSlider area when at higher than 95 or below 5. I've tried padding the Track with no success.</p> <p><img src="https://dl.dropbox.com/u/2363305/Forums/Java/JSlider_Thumb_OffScreen.png" alt="alt text"></p> <p>Does anyone have any tips?</p> <p>Here is my code. I believe my issue is fine turning the size of the thumb under the getThumbSize override.</p> <pre><code>private static class MySliderUI extends BasicSliderUI { private int thumbHeight = 22; private int thumbWidth = 22; public MySliderUI(JSlider b) { super(b); // this.thumbHeight = slider.getHeight(); // this.thumbWidth = slider.getHeight(); } @Override protected Dimension getThumbSize() { return new Dimension(thumbHeight, thumbWidth); } @Override public void paintTrack(Graphics g) { Graphics2D g2d = (Graphics2D) g; Rectangle r = trackRect; r.width = 40; // (int) (0.15 * r.getHeight()); float[] dist = { 0.1f, 0.5f, 0.9f }; Color[] colors = { new Color(34, 177, 76), new Color(255, 242, 0), new Color(237, 28, 36) }; Point2D start = new Point2D.Float(r.x, r.y); Point2D end = new Point2D.Float(r.x, r.y + r.height); LinearGradientPaint p = new LinearGradientPaint(start, end, dist, colors); g2d.setPaint(p); g2d.fill(r); } @Override public void paintThumb(Graphics g) { Graphics2D g1 = (Graphics2D) g; // Make a triangle - Arrow on Meter int[] x = new int[3]; int[] y = new int[3]; int n; // count of points // Set Points for Arrow Integer arrowX = thumbRect.x; Integer arrowY = thumbRect.y; x[0] = arrowX - 25; x[1] = arrowX - 25; x[2] = arrowX - 2; y[0] = arrowY - 17; // Top Left y[1] = arrowY + 27; // Bottom Left y[2] = arrowY + 5; // Tip of Arrow n = 3; // Number of points, 3 because its a triangle // Draw Arrow Border Polygon myTriShadow = new Polygon(x, y, n); // a triangle g1.setPaint(Color.black); g1.fill(myTriShadow); // Set Points for Arrow Board x[0] = x[0] + 2; x[1] = x[1] + 2; x[2] = x[2] - 3; y[0] = y[0] + 5; y[1] = y[1] - 5; y[2] = y[2]; // Color colorMeter = robot.getPixelColor(x[2]+10, y[2]); // Draw Arrow Polygon myTri = new Polygon(x, y, n); // a triangle // Color colr = new Color(); g1.setPaint(Color.yellow); g1.fill(myTri); // super.paintThumb(g); // replace with your fill() } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload