Say I have an image of the appropriate size inside Image() I want to change the Thumb or Knob of the JScrollBar component this way.
I know that I need to subclass ScrollBarUI
That's where I am now.
public class aScrollBar extends JScrollBar { public aScrollBar(Image img) { super(); this.setUI(new ScrollBarCustomUI(img)); } public class ScrollBarCustomUI extends BasicScrollBarUI { private final Image image; public ScrollBarCustomUI(Image img) { this.image = img; } @Override protected void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds) { Graphics2D g2g = (Graphics2D) g; g2g.dispose(); g2g.drawImage(image, 0, 0, null); super.paintThumb(g2g, c, thumbBounds); } @Override protected void paintTrack(Graphics g, JComponent c, Rectangle trackBounds) { super.paintTrack(g, c, trackBounds); } @Override protected void setThumbBounds(int x, int y, int width, int height) { super.setThumbBounds(0, 0, 0, 0); } @Override protected Dimension getMinimumThumbSize() { return new Dimension(0, 0); } @Override protected Dimension getMaximumThumbSize() { return new Dimension(0, 0); } } }
Right now I don't see a single Thumb, just a track when I try to click on a ScrollBar.
I checked this article and saw that people recommended you read this , but nowhere does it mention images, so this is what I came up with.
Hope someone can help me, thanks!
source share