1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Insets;
import java.awt.RenderingHints;
import javax.swing.border.Border;
public class RoundedBorder implements Border {
private Color couleur;
private int largeurArc;
private int hauteurArc;
public RoundedBorder(Color couleur, int largeurArc, int hauteurArc) {
this.couleur = couleur;
this.largeurArc = largeurArc;
this.hauteurArc = hauteurArc;
}
public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
g.setColor(this.couleur);//ou une autre couleur que tu peux rendre paramétrable
int adjustXY = 1;//pour ajuster le dessin en x et y
int adjustWH = 2;//idem pour width et height
//pour eviter les escalier sur l'arrondi
Graphics2D g2 = (Graphics2D)g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.drawRoundRect(x+adjustXY, y+adjustXY, width-adjustWH, height-adjustWH, this.largeurArc, this.hauteurArc);
}
public Insets getBorderInsets(Component c) {
return new Insets(0,0,0,0);
}
public boolean isBorderOpaque() {
return true;
}
} |
Partager