graphics.drawPolygon():Hexagon的右侧没有绘制,为什么?

时间:2013-08-23 13:36:52

标签: java graphics

我是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方法没有说明这一点,所以我真的不知道这里发生了什么。

帮助将有所帮助。

0 个答案:

没有答案