[英]White space at the right and bottom edge of the window
创建完一个窗口后,该窗口应该完全是黑色的,在右侧和底部边缘都有白色。 我可能做错了什么?
这是我初始化window的构造函数:
public Panel()
{
Thread t = new Thread(this);
addKeyListener(this);
setFocusable(true);
this.setPreferredSize(new Dimension(gameWidth, gameHeight));
JFrame f = new JFrame("AlienBusters");
f.add(this);
f.pack();
f.setLocationRelativeTo(null);
f.setResizable(false);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
t.start();
}
这是使窗口变黑的绘制方法:-
@Override
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(Color.BLACK);
g.fillRect(0, 0, gameWidth, gameHeight);
}
五件事
pack
之后调用setResizable
并不是一个好主意, setResizable
可以更改框架边框的大小,这会影响可用内容的大小。 KeyListener
,请参阅如何使用按键绑定并节省头痛... g.fillRect(0, 0, gameWidth, gameHeight);
依赖于幻数而不是英制值g.fillRect(0, 0, gameWidth, gameHeight);
应该是g.fillRect(0, 0, getWidth(), getHeight());
或者更好,只需使用setBackground(Color.BLACK)
并通过super.paintComponent
免费获得它,并且paintComponent
应该受到protected
;) setPreferredSize
。 这意味着可以更改大小,这可能不是您真正想要的。 而是改写getPreferredSize
。 请参阅我应该避免在Java Swing中使用set(Preferred | Maximum | Minimum)Size方法吗? 更多细节
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.