Swing滚动条重写
Swing滚动条重写
摘自:https://blog.csdn.net/qq_40064948/article/details/81738191
未验证
Swing滚动条重写
2018年08月16日 11:17:20
阅读数:3
package com.bjsxt.view.ui; import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle; import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.plaf.basic.BasicScrollBarUI; /**
* 自定义滚动条
* @author Silly
*
*/
public class MyScrollBarUI extends BasicScrollBarUI { @Override
protected void configureScrollBarColors() {
// 滑道
trackColor = Color.WHITE;
} @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(new Color(200,200,200));
// 画一个圆角矩形,前4个参数为坐标和宽高,后面两个参数用于控制角落的圆角弧度
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("img\\scroll\\"+name);
return backImage;
} }
设置方式: JScrollPane friendScro = new JScrollPane(tree);
friendScro.getVerticalScrollBar().setUI(new MyScrollBarUI());
来自一个喜欢编程的小姐姐 >.< 客官~有缘再见!
Swing滚动条重写的更多相关文章
- IOS中导航控制器的代理及隐藏控制器刚出现时的滚动条
一.导航控制器的代理 1.UINavigationController的delegate属性 2.代理方法 1> 即将显示新控制器时调用 /* navigationController : 导航 ...
- java之线程
java之线程 一:线程: 线程是什么呢?线程,有时被称为轻量级进程是程序执行流的最小单元.一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成.另外,线程是进程中的一个实体,是被系统 ...
- Swing自定义JScrollPane的滚动条设置,重写BasicScrollBarUI方法
Swing自定义JScrollPane的滚动条设置,重写BasicScrollBarUI方法 摘自:https://blog.csdn.net/qq_31635851/article/details/ ...
- eclipse 更改默认主题,重写默认滚动条样式(安装DevStyle主题插件)
1.点击Help->Eclipse Marktplace 2.弹出窗口输入: DevStyle 3.点击安装,重启eclipse 4.可以设置黑色和浅色主题,个人比较喜欢浅色,重点式滚动条样式变 ...
- java swing:文本框添加滚动条
有几点要注意: 1.默认的滚动条,仅在输入的文本超过文本框时才会显示..没有超过文本框是不会显示的: 2.设置矩形大小,是在滚动条上设置,而不是在文本框上设置: 示例代码如下: public clas ...
- 重写移动端滚动条[iScroll.js核心代码]
最近写组件库的时后,发现这个滚动条是真的丑啊,决定重新撸一个滚动条: 首先咱们回顾一下移动端浏览器滚动条特性: 滚动条在开始滚动时渐显,滚动结束后渐隐 滚动条不占内容区宽度,悬浮固定 滚动条高度(深灰 ...
- Java Swing TextArea 滚动条和获得焦点
JTextArea text=new JTextArea(); text.setLineWrap(true);//设置自己主动换行,之后则不须要设置水平滚动栏 JScrollPane scroll=n ...
- java swing内嵌浏览器,隐藏滚动条
1 通过定义css样式表来解决 1 html{overflow-y:scoll;overflow:-moz-scrollbars-vertical;} 2 body{width:680px;heigh ...
- 总结-swing、JFrame、JScrollPane、JTabbedPane、JEditorPane
总结-swing.JFrame.JButton.JScrollPane.JLabel.JTabbedPane.JEditorPane 1.JButton内边距(去掉按钮里的空白):setMargin2 ...
随机推荐
- HTTP 和 SOAP
http:是一个客户端和服务器端请求和应答的标准(TCP).http协议其目的是为了提供一种发布和接收htttp页面的方法 一http协议的客户端与服务器的交互:由HTTP客户端发起一个请求,建立一个 ...
- c#联网判断
引用命名空间:sing System.Net.NetworkInformation; var address = "www.baidu.com"; Ping ping = null ...
- 关于 Android 中未公开的类(用@hide隐藏的类)
关于 Android 中未公开的类(用@hide隐藏的类) 摘自:http://wangsheng2008love.blog.163.com/blog/static/78201689201142643 ...
- linux下PS1命令提示符设置
linux下PS1命令提示符设置 在此文件最后一行添加:vim /etc/profileexport PS1='[\u@\h \W]\$ ' #这里必须用单引号. \d :代表日期,格式为 ...
- PHP 判断手机号归属地 和 运营商的免费接口
在项目开发的时候,需要去查询又一批手机号或者固话的具体信息(归属地 运营商) 就需要写一个脚本,来批量请求接口来得到我们想要的数据 学习源头:https://blog.csdn.net/shaerdo ...
- 蓝桥杯 算法训练 ALGO-15 旅行家的预算
算法训练 旅行家的预算 时间限制:1.0s 内存限制:256.0MB 问题描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1.汽车 ...
- 【转】Jmeter和LR上传文件和下载
背景: 在某个申请业务中,需要上传附件文件,然后才能提交该申请 遇到的问题: 1, 在使用Jmeter或者LR进行录制时,无法录制到上传文件的请求,只能通过Fiddler能查看到该请求 2, 因为 ...
- PHP传入数组到js
1.方式一,处理成字符串 js再将字符串处理成数组. var spec1_default = "{$spec1_default}"; spec1_default = spec1_d ...
- 使用Docker模拟ansible集群环境
/etc/ansible/hosts 192.168.99.100 ansible_ssh_port=8081 ansible_ssh_user=root 配置容器免密码SSH登录
- 不使用sudo命令执行docker
不使用sudo命令执行docker 2015-09-11 11:03:05 王春生 8049 最后编辑:王春生 于 2015-09-11 12:18:30 简介:本篇文章介绍如何不使用sudo命 ...