0

我在一个扩展 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() 而不是使用确切的可变宽度和高度。而且效果很好,
不知道是什么原因?请帮助我为什么会发生这种情况,在这种情况下变量不准确吗?或者是什么 。非常感谢您

4

0 回答 0