package com.hearthsim.gui; import javax.swing.*; import javax.swing.plaf.basic.BasicScrollBarUI; import java.awt.*; public class HSScrollbarUI extends BasicScrollBarUI { private static final Color LIGHTER_BACKGROUND_COLOR = new Color(64, 64, 64); private static final Color BACKGROUND_COLOR = new Color(32, 32, 32); @Override protected JButton createDecreaseButton(int orientation) { JButton btnL = new JButton(""); btnL.setPreferredSize(new Dimension(0, 0)); return btnL; } @Override protected JButton createIncreaseButton(int orientation) { JButton btnL = new JButton(""); btnL.setPreferredSize(new Dimension(0, 0)); return btnL; } @Override protected void paintTrack(Graphics g, JComponent c, Rectangle trackBounds) { g.setColor(LIGHTER_BACKGROUND_COLOR); g.fillRect(trackBounds.x, trackBounds.y, trackBounds.width, trackBounds.height); } @Override protected void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds) { if (thumbBounds.isEmpty() || !scrollbar.isEnabled()) { return; } Graphics2D g2 = (Graphics2D) g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.setColor(BACKGROUND_COLOR); g.fillRoundRect(thumbBounds.x, thumbBounds.y, thumbBounds.width, thumbBounds.height, 20, 20); } }