1 按钮
JButton btn= new JButton();
//设置按钮默认图标
btn.setIcon();
// 设置按钮按下图标
btn.setPressedIcon();
//设置按钮点击图标
btn.setRolloverIcon();
// 设置按钮无边框
btn.setBorderPainted(false);
//设置按钮背景透明
startbtn.setContentAreaFilled(false);
2 输入框
//设置输入框透明
textfield.setOpaque(false);
// 设置输入框边框无
textfield.setBorder(new EmptyBorder(0,0,0,0));
3 修改滚动条样式
重写BasicScrollBarUI
import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GradientPaint;
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.JScrollBar;
import javax.swing.plaf.basic.BasicScrollBarUI;
/**
* 自定义滚动条UI
*
* @author zsg
*/
public class DemoScrollBarUI extends BasicScrollBarUI {
@Override
protected void configureScrollBarColors() {
// 把手
// thumbColor = Color.GRAY;
// thumbHighlightColor = Color.BLUE;
// thumbDarkShadowColor = Color.BLACK;
// thumbLightShadowColor = Color.YELLOW;
// 滑道
trackColor = Color.black;
setThumbBounds(0, 0, 3, 10);
// trackHighlightColor = Color.GREEN;
}
/**
* 设置滚动条的宽度
*/
@Override
public Dimension getPreferredSize(JComponent c) {
// TODO Auto-generated method stub
c.setPreferredSize(new Dimension(5, 0));
return super.getPreferredSize(c);
}
// 重绘滑块的滑动区域背景
public void paintTrack(Graphics g, JComponent c, Rectangle trackBounds) {
Graphics2D g2 = (Graphics2D) g;
GradientPaint gp = null;
//判断滚动条是垂直的 还是水平的
if (this.scrollbar.getOrientation() == JScrollBar.VERTICAL) {
//设置画笔
gp = new GradientPaint(0, 0, new Color(80, 80, 80),
trackBounds.width, 0, new Color(80, 80, 80));
}
if (this.scrollbar.getOrientation() == JScrollBar.HORIZONTAL) {
gp = new GradientPaint(0, 0, new Color(80, 80, 80),
trackBounds.height, 0, new Color(80, 80, 80));
}
g2.setPaint(gp);
//填充Track
g2.fillRect(trackBounds.x, trackBounds.y, trackBounds.width,
trackBounds.height);
//绘制Track的边框
/* g2.setColor(new Color(175, 155, 95));
g2.drawRect(trackBounds.x, trackBounds.y, trackBounds.width - 1,
trackBounds.height - 1);
*/
if (trackHighlight == BasicScrollBarUI.DECREASE_HIGHLIGHT)
this.paintDecreaseHighlight(g);
if (trackHighlight == BasicScrollBarUI.INCREASE_HIGHLIGHT)
this.paintIncreaseHighlight(g);
}
@Override
protected void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds) {
// 把绘制区的x,y点坐标定义为坐标系的原点
// 这句一定一定要加上啊,不然拖动就失效了
g.translate(thumbBounds.x, thumbBounds.y);
// 设置把手颜色
g.setColor(new Color(46, 46, 46));
// 画一个圆角矩形
// 这里面前四个参数就不多讲了,坐标和宽高
// 后两个参数需要注意一下,是用来控制角落的圆角弧度
// g.drawRoundRect(0, 0, 5, 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(0, 0, 5, thumbBounds.height - 1, 5, 5);
}
/**
* 创建滚动条上方的按钮
*/
@Override
protected JButton createIncreaseButton(int orientation) {
JButton button = new JButton();
button.setBorderPainted(false);
button.setContentAreaFilled(false);
button.setBorder(null);
return button;
}
/**
* 创建滚动条下方的按钮
*/
@Override
protected JButton createDecreaseButton(int orientation) {
JButton button = new JButton();
button.setBorderPainted(false);
button.setContentAreaFilled(false);
button.setFocusable(false);
button.setBorder(null);
return button;
}
}
JScrollPane scrollPane = new JScrollPane(chatText);
//设置滚动条样式
scrollPane .getVerticalScrollBar().setUI(new DemoScrollBarUI());
scrollPane .setBounds(40, 330, 475, 110);
// 将 JScrollPane背景设置透明
scrollPane .setOpaque(false);
scrollPane .getViewport().setOpaque(false);
//设置无边框
scrollPane .setBorder(new EmptyBorder(0, 0, 0, 0));
- 大小: 12.8 KB
分享到:
相关推荐
JAVA Swing 日历控件 JAVA Swing 日历控件 JAVA Swing 日历控件 JAVA Swing 日历控件
1、JAVA Swing日期选择控件datepicker 2、附带该控件的使用
java swing 日期控件 java swing 日期控件 java swing 日期控件 java swing 日期控件 java swing 日期控件
java Swing日期控件以及使用文档
使用纯java swing 编写的日期时间选择控件,免去了以前的手动输入造成的输入错误,输入丢失的不必要的错误
一款JAVASE编程的皮肤美化界面插件包 Java Swing 界面美化包-含源码
好东西当然给力,最新的JavaSwing日历控件宝典.doc
JAVA基本控件实例,包括JTABLE的各种操作,TREE,工具条,htmlDemo 练习
java swing 技术做的日历,在平常项目中有很多日期,如果使用这个控件,可以省下很多代码。
很丰富的javaSwing界面控件编程,教你用各种Swing控件
简单可重用的时间swing控件,代码简单易懂。有样例,有事件回调
JavaSwing界面设计(所有控件及示例)
Java swing日历控件,不用找了,拿去吧
NULL 博文链接:https://zgdeng.iteye.com/blog/1405459
java swing常用控件的演示,还包含的JTable的一般使用方法.
java swing 日期控件 重写的日期控件 上次发的少了个jar包,这次给补上了
JavaSwing日历控件的代码,描述一个利用Java变形的日历