我用类做圆角的边框我是如何在圆角下移除不需要的背景的?
类是:
public class RoundedBorder implements Border {
int radius;
public RoundedBorder(int radius) {
this.radius = radius;
}
@Override
public Insets getBorderInsets(Component c) {
return new Insets(this.radius/2, this.radius, this.radius/2, this.radius);
}
@Override
public boolean isBorderOpaque() {
return true;
}
@Override
public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
Graphics2D graphics = (Graphics2D) g;
graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
g.drawRoundRect(x,y,width-1,height-1,radius,radius);
}
}
和按钮,我用:
JTextField login_nickname = new JTextField();
login_nickname.setBorder(new RoundedBorder(10));
login_nickname.setPreferredSize(new Dimension(150, 25));
和它的工作很好,但我想删除未使用的背景外圆角边框在角落,我附图解释更多我的意思,
谢谢
1)*“我用班级制作..”*请使用shift键在句子的开头以及单词'I'中写上大写字母。这样做可以帮助读者。 2)为了更快地获得更好的帮助,请发布[SSCCE](http://sscce.org/)。 – 2012-03-20 11:34:17
可能的重复 - http://stackoverflow.com/questions/8416295/component-painting-outside-custom-border – mre 2012-03-20 12:18:57