我在一个扩展 Canvas 的类中编写了这些代码。(如果您不想阅读,请查看这些链接中的图片,由于stackoverflow声誉或其他原因,我无法直接发布图片) http://tinypic.com/r/oaw3u8/5 http:// /tinypic.com/r/24g9ldz/5
final static int WIDTH = 800;
final static int HEIGHT = 600;
Dimension SIZE = new Dimension(WIDTH, HEIGHT);
Game() {
setPreferredSize(SIZE);
**
**
*
*
}
public void render() {
BufferStrategy bs = getBufferStrategy();
if (bs == null) {
createBufferStrategy(3);
return;
}
Graphics g = bs.getDrawGraphics();
g.setColor(Color.cyan);
Graphics2D g2 = (Graphics2D) g;
**g.fillRect(0, 0, getWidth(), getHeight());**
g.dispose();
bs.show();
}
问题是关于双目代码行,它用于通过绘制屏幕大小的矩形来刷新屏幕。**第一次,我的代码是 g.fillRect(0,0,WIDTH,HEIGHT);
然后我注意到黑色矩形比屏幕小。框架右侧有一个大约 1 英寸的小边距。(我可能使用错误的“边距”,但我希望你明白我的意思)所以我使用 getWidth(),getHeight() 而不是使用确切的可变宽度和高度。而且效果很好,
不知道是什么原因?请帮助我为什么会发生这种情况,在这种情况下变量不准确吗?或者是什么 。非常感谢您