package course;
import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.RenderingHints;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.plaf.basic.BasicScrollBarUI;
/**
* 自定义滚动条UI
* @author SongFei
* @date 2015年5月18日
*/
public class DemoScrollBarUI extends BasicScrollBarUI {
@Override
protected void configureScrollBarColors() {
// 把手
// thumbColor = Color.GRAY;
// thumbHighlightColor = Color.BLUE;
// thumbDarkShadowColor = Color.BLACK;
// thumbLightShadowColor = Color.YELLOW;
// 滑道
trackColor = Color.WHITE;
// trackHighlightColor = Color.GREEN;
}
@Override
protected void paintTrack(Graphics g, JComponent c, Rectangle trackBounds) {
super.paintTrack(g, c, trackBounds);
}
@Override
protected void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds) {
// 把绘制区的x,y点坐标定义为坐标系的原点
// 这句一定一定要加上啊,不然拖动就失效了
g.translate(thumbBounds.x, thumbBounds.y);
// 设置把手颜色
g.setColor(Color.BLACK);
// 画一个圆角矩形
// 这里面前四个参数就不多讲了,坐标和宽高
// 后两个参数需要注意一下,是用来控制角落的圆角弧度
g.drawRoundRect(5, 0, 6, thumbBounds.height-1, 5, 5);
// 消除锯齿
Graphics2D g2 = (Graphics2D) g;
RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.addRenderingHints(rh);
// 半透明
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f));
// 设置填充颜色,这里设置了渐变,由下往上
// g2.setPaint(new GradientPaint(c.getWidth() / 2, 1, Color.GRAY, c.getWidth() / 2, c.getHeight(), Color.GRAY));
// 填充圆角矩形
g2.fillRoundRect(5, 0, 6, thumbBounds.height-1, 5, 5);
}
@Override
protected JButton createIncreaseButton(int orientation) {
JButton button = new JButton(produceImage("down.png"));
button.setBorder(null);
return button;
}
@Override
protected JButton createDecreaseButton(int orientation) {
JButton button = new JButton(produceImage("up.png"));
button.setBorder(null);
return button;
}
/**
* 获取图片
* @param name 图片名称
* @return
*/
private ImageIcon produceImage(String name) {
ImageIcon backImage = new ImageIcon(getClass().getClassLoader().getResource(name));
return backImage;
}
}
最近下载更多
最近浏览更多
woldxy LV12
2024年4月1日
dsuccess
2023年7月5日
暂无贡献等级
漫步的海星 LV4
2023年3月24日
yeyuantao LV6
2023年3月1日
ruifeng LV4
2022年7月22日
jacktingxiao
2022年3月31日
暂无贡献等级
nmd2022
2022年3月20日
暂无贡献等级
1415545830qq
2022年3月11日
暂无贡献等级
微信网友_5852742079762432 LV6
2022年2月28日
调戏红颜
2022年1月18日
暂无贡献等级

