아래 코드를 사용하여 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
늦은 응답을 위해 Srry. 나는 이미 prefferedsize (사용자 정의 이미지와 크기가 같음)로 노려 보았지만 사용자 정의 화살표 이미지는 여전히 나타나지 않습니다. 나는 단서가 없습니다 –