我正在用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);,以防这一行在以后引起问题。
发布于 2013-06-06 10:50:48
这个问题与Windows8无关,但事实是你已经覆盖了一个顶级容器的paint。
框架边框在窗口的边界内绘制。
框架具有内容窗格,应使用该窗格来布局内容或执行自定义绘制。
与其覆盖顶层容器的paint,不如创建一个自定义组件(从JPanel扩展而来)并覆盖它的paintComponent方法。
然后,可以将其添加到框架内容窗格或替换框架内容窗格
看看..。
有关详细说明,请参阅
https://stackoverflow.com/questions/16950685
复制相似问题