package com.javaxyq.ui; import java.awt.Color; import java.awt.Component; import java.awt.Graphics; import java.awt.Insets; import javax.swing.border.AbstractBorder; public class RoundLineBorder extends AbstractBorder{ private static final long serialVersionUID = -710038999584689482L; private Color color; private int thickness; private int arcWidth; private int arcHeight; public RoundLineBorder(Color color,int thickness,int arcWidth, int arcHeight) { this.color = color; this.thickness = thickness; this.arcWidth = arcWidth; this.arcHeight = arcHeight; } public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) { //Graphics2D g2d = (Graphics2D) g.create(); //g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f)); //g2d.setColor(Color.BLACK); //g2d.fillRoundRect(x+1, y+1, width-2, height-2, arcWidth, arcHeight); //g2d.dispose(); //g.setColor(background); //g.fillRoundRect(x+1, y+1, width-2, height-2, arcWidth, arcHeight); g.setColor(this.color); for(int i=0;i<thickness;i++) { g.drawRoundRect(x+i, y+i, width-1-i-i, height-1-i-i, arcWidth, arcHeight); } } public Insets getBorderInsets(Component c) { return new Insets(0, 0, 0, 0); } }