我对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);
}
}
它应该创建与窗口一样大的弧线...但这是结果:
我在做什么错了?
答案 0 :(得分:1)
理解“可见区域”是窗口大小减去框架装饰的大小。
您不应该将窗口大小用作基准,而是覆盖getPreferredSize
(在java.awt.Canvas
的情况下)并返回您要使用的首选大小,然后可以使用Window#pack
将窗口包装在内容周围,它将独立于平台。
然后您可以使用getWidth
的{{1}}和getHeight
方法来确定可用的实际大小