我是Java的新手,我想做的一件事是将今年早些时候制作的C#项目的代码翻译成Java。 这个项目涉及六边形按钮,因此我创建了一个JButton子类,它在构造函数中创建了一个Polygon并将其保存到变量中。
Polygon buttonShape;
getButtonShape()...
setButtonShape()...
public PolygonButton(String label, int size, Point location) {
super(label);
this.setLocation(location);
this.setSize(size, size);
int xPoints[] = {0,(this.getWidth()/2),this.getWidth(),this.getWidth(),(this.getWidth()/2),0};
int yPoints[] = {(this.getWidth()/4),0,(this.getWidth()/4),(3*this.getWidth()/4),this.getWidth(),(3*this.getWidth()/4)};
int nPoints = 6;
Polygon poly = new Polygon(xPoints,yPoints,nPoints);
setButtonShape(poly);
Polygon用于paintBorder方法
@Override
protected void paintBorder(Graphics g) {
g.setColor(Color.BLACK);
g.drawPolygon(getButtonShape());
}
但是当执行代码时,Hexagon缺少它的右侧,看起来像是它的底角。选择的点很好,Graphics.drawPolygon方法没有说明这一点,所以我真的不知道这里发生了什么。
帮助将有所帮助。