假設我在Image()
裏面有適當大小的圖像我想將JScrollBar
組件的Thumb或旋鈕更改爲此圖像。如何將JScrollbar的Thumb更改爲自定義圖像
我知道我需要繼承ScrollBarUI
這是我在目前位置。
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);
}
}
}
現在我沒有看到任何的拇指,只有一個軌道,當我嘗試點擊ScrollBar。
我檢出了this文章,看到有人推薦你閱讀this,但他沒有提到圖片,所以這是我想出的。
希望有人能幫助我,謝謝!
當您指定非空邊界和大小時會發生什麼?你嘗試過'MetalScrollBarUI'嗎?請修改您的問題以包含[sscce](http://sscce.org/)。 – trashgod 2012-03-09 07:02:05
@Epicmaster +1的問題,不知道... – mKorbel 2012-03-09 08:40:32
請學習java命名約定並堅持他們 – kleopatra 2012-03-31 09:39:42