您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
巧用java的swing-jpanel结合2d绘图实现圆角边框
发布时间:2017-08-25 21:34:27编辑:雪饮阅读()
在现在的bs架构中前端页面可通过css3轻松实现圆角边框布局。而在javase中如何通过swing的基础容器jpanel中实现圆角呢?下面是我封装的一个类,可直接调用。支持设置边框弧度。不过弧度的设置是通过长轴和短轴的方式来实现的。这个在数学中关于椭圆中不难理解。
还支持设置颜色,以rgb值的方式设置。即便如此,在swing中的复杂布局中要实现圆角边框,并非易事,自己要多动脑筋,比如用一些容器偏移与容器覆盖并结合背景色等奇技淫巧来实现。
package ui;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.geom.RoundRectangle2D;
import javax.swing.JPanel;
public class RoundRectPanel extends JPanel{
private int xLength;
private int yLength;
private Color color;
private static final long serialVersionUID = 1L;
RoundRectPanel(int xLength,int yLength,int r,int g,int b){
this.xLength=xLength;
this.yLength=yLength;
this.color=new Color(r,g,b);
}
public void paint(Graphics g){
//RoundRectangle2D.Double方法的6个参数分别是:2D圆角矩形的x,y,width,height,圆角的长轴和短轴(长轴和短轴造就了圆角的弧度)
RoundRectangle2D.Double rect=new RoundRectangle2D.Double(0, 0, getWidth(), getHeight(), xLength, yLength);
g.setClip(rect);
super.paint(g);
setBackground(this.color);
}
}
关键字词:javase,swing,jpanel,圆角边框