1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| import java.awt.*;
import javax.swing.*;
import javax.swing.plaf.basic.BasicScrollBarUI;
/**
*
* @author gz
*/
public class ScrollBarModified extends BasicScrollBarUI {
public static int ROUND_WIDTH = 10;
public static int Y_OFFSET = 5;
public static Color DRAW_COLOR = new Color(77, 77, 77);
public ScrollBarModified() {
super();
}
protected void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds) {
Graphics2D buffer = (Graphics2D) g;
buffer.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
buffer.setStroke(new BasicStroke(1.0f));
buffer.setColor(DRAW_COLOR);
buffer.fillRoundRect(thumbBounds.x + 2, thumbBounds.y + 2, thumbBounds.width, thumbBounds.height - 3 - Y_OFFSET, ROUND_WIDTH, ROUND_WIDTH);
}
protected void paintTrack(Graphics g, JComponent c, Rectangle trackBounds) {
Graphics2D buffer = (Graphics2D) g;
buffer.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
buffer.setColor(new Color(0, 0, 0));
buffer.fillRect(trackBounds.x, trackBounds.y, trackBounds.width, trackBounds.height);
buffer.setColor(DRAW_COLOR);
buffer.drawRoundRect(trackBounds.x, trackBounds.y, trackBounds.width, trackBounds.height - Y_OFFSET, ROUND_WIDTH, ROUND_WIDTH);
}
protected void installComponents() {
switch (scrollbar.getOrientation()) {
case JScrollBar.VERTICAL:
incrButton = createIncreaseButton(SOUTH);
decrButton = createDecreaseButton(NORTH);
break;
case JScrollBar.HORIZONTAL:
if (scrollbar.getComponentOrientation().isLeftToRight()) {
incrButton = createIncreaseButton(EAST);
decrButton = createDecreaseButton(WEST);
} else {
incrButton = createIncreaseButton(WEST);
decrButton = createDecreaseButton(EAST);
}
break;
}
//scrollbar.add(incrButton); // Comment out this line to hide arrow
//scrollbar.add(decrButton); // Comment out this line to hide arrow
scrollbar.setBackground(new Color(0, 0, 0));
// Force the children's enabled state to be updated.
scrollbar.setEnabled(scrollbar.isEnabled());
}
} |
Partager