方法fillArc用错误的尺寸绘制圆弧

时间:2018-12-26 22:16:35

标签: java graphics

我对Graphics类的fillArc方法有疑问。

当我给出圆弧大小的整数值时,它会绘制尺寸错误的圆弧。

 Dimension dimensione;  //dimension of the window. 
 public void paint() {

    BufferStrategy bS = this.getBufferStrategy();

    Graphics g=bS.getDrawGraphics();
   g.clearRect(0, 0,(int)dimensione.getWidth(), (int)dimensione.getHeight());



   // g.fillArc((int)dimensione.getWidth()/2-150,(int)dimensione.getHeight()/2-150, 300,300, 0, 360);
        g.fillArc(0,0,(int)dimensione.getWidth(), (int)dimensione.getHeight(),0, 360);


    bS.show();


    try {
        Thread.sleep(100);
    } catch (InterruptedException ex) {
        Logger.getLogger(Disegno.class.getName()).log(Level.SEVERE, null, ex);
    }
}

它应该创建与窗口一样大的弧线...但这是结果:

enter image description here

我在做什么错了?

1 个答案:

答案 0 :(得分:1)

理解“可见区域”是窗口大小减去框架装饰的大小。

您不应该将窗口大小用作基准,而是覆盖getPreferredSize(在java.awt.Canvas的情况下)并返回您要使用的首选大小,然后可以使用Window#pack将窗口包装在内容周围,它将独立于平台。

然后您可以使用getWidth的{​​{1}}和getHeight方法来确定可用的实际大小