0

我正在使用 Java 编写程序,但在 W8 中的标题栏出现问题。由于某种原因,坐标 (0,0) 向上并隐藏在标题栏中。如果我想在 (0,0) 处绘制一些东西,我必须将 Graphics 对象转换为 (0,10) 以使其出现。

我目前有:

        g.setColor(Color.BLACK);
        g.fillRect(0, 0, Config.WIDTH + 10, Config.HEIGHT + 10);
        g.translate(0, 10);
        g.setColor(Color.WHITE);
        g.setFont(fonts.getFont(0));
        g.drawString("FPS: " + scr.fps, 0, 0);

这行得通,但是我想删除g.translate(0, 10);以防这条线最终导致以后出现问题。

4

1 回答 1

0

该问题与 Windows 8 无关,而是您已覆盖paint顶级容器这一事实。

框架边框在窗口范围内绘制。

框架有一个内容窗格,应该用于布局内容或执行自定义绘画。

而不是覆盖paint顶级容器,而是为您自己创建一个自定义组件(从类似的东西扩展JPanel)并覆盖它的paintComponent方法。

然后,您可以将其添加到框架内容窗格或替换框架内容窗格

查看...

进一步解释

于 2013-06-06T02:50:48.170 回答