Java swing实现圆角方框
时间: 2023-08-14 15:06:39 浏览: 108
要在 Java Swing 中实现圆角方框的效果,可以通过设置组件的 Border 来实现。可以自定义一个 Border 类来实现圆角方框的效果。具体方法如下:
1. 创建一个 RoundedBorder 类,该类继承 javax.swing.border.AbstractBorder 类,并实现其中的 paintBorder() 方法。
```java
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Insets;
import javax.swing.border.AbstractBorder;
public class RoundedBorder extends AbstractBorder {
private static final long serialVersionUID = 1L;
private Color borderColor;
private int borderRadius;
public RoundedBorder(Color borderColor, int borderRadius) {
this.borderColor = borderColor;
this.borderRadius = borderRadius;
}
public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
g.setColor(borderColor);
g.drawRoundRect(x, y, width - 1, height - 1, borderRadius, borderRadius);
}
public Insets getBorderInsets(Component c) {
return new Insets(borderRadius + 1, borderRadius + 1, borderRadius + 2, borderRadius);
}
public Insets getBorderInsets(Component c, Insets insets) {
insets.left = borderRadius + 1;
insets.right = borderRadius + 1;
insets.top = borderRadius + 2;
insets.bottom = borderRadius;
return insets;
}
public boolean isBorderOpaque() {
return true;
}
public int getBorderRadius() {
return borderRadius;
}
public void setBorderRadius(int borderRadius) {
this.borderRadius = borderRadius;
}
public Color getBorderColor() {
return borderColor;
}
public void setBorderColor(Color borderColor) {
this.borderColor = borderColor;
}
}
```
2. 在需要添加圆角方框的组件上设置 RoundedBorder。
```java
JPanel panel = new JPanel();
panel.setBackground(Color.WHITE);
RoundedBorder roundedBorder = new RoundedBorder(Color.GRAY, 20);
panel.setBorder(roundedBorder);
```
通过设置 RoundedBorder 类的 borderRadius 属性,可以调整圆角的大小。