我正在嘗試使用下面的代碼自定義jScrollPane。它的工作原理是按照我想要的方式改變顏色,但是隱藏了箭頭按鈕。自定義滾動條箭頭
我想要的是讓它們再次可見並使用自定義圖像進行更改。我試圖在這個論壇上搜索,但我無法找到任何有關它的信息。
我希望有人能幫助我。提前致謝!
private Image imageThumb, imageTrack;
private JButton b = new JButton() {
@Override
public Dimension getPreferredSize() {
return new Dimension(0, 0);
}
};
public YourScrollbarUI() {
imageThumb = WrapImage .create(45, 45, new Color(46,218,163));
imageTrack = WrapImage .create(32, 32, new Color(90,90,90));
}
@Override
protected void paintThumb(Graphics g, JComponent c, Rectangle r) {
g.setColor(Color.blue);
((Graphics2D) g).drawImage(imageThumb,
r.x, r.y, r.width, r.height, null);
}
@Override
protected void paintTrack(Graphics g, JComponent c, Rectangle r) {
((Graphics2D) g).drawImage(imageTrack,
r.x, r.y, r.width, r.height, null);
}
@Override
protected JButton createDecreaseButton(int orientation) {
return b;
}
@Override
protected JButton createIncreaseButton(int orientation) {
return b;
}
private static class WrapImage {
static public Image create(int w, int h, Color c) {
BufferedImage bi = new BufferedImage(
w, h, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = bi.createGraphics();
g2d.setPaint(c);
g2d.fillRect(0, 0, w, h);
g2d.dispose();
return bi;}}
我想你的代碼通過修改createDecreaseButton和createIncreaseButton,但自定義圖標顯示不出來。相反,它顯示了一小部分(我認爲它是)標準Jbutton。我們如何解決這個問題? –
@RichardAvalos你可以玩重寫getPreferredSize方法(你已經做了,但是返回使得按鈕不可見的'(0,0)')。查看更新的答案。這只是一個例子。你當然可以做得更好。 – dic19
姍姍來遲的迴應。我已經嘗試使用prefferedsize(使它們與自定義圖像大小相同),但自定義的arrowimages仍未顯示出來。 Im無能 –