我正在使用frame.setSize(480, 400)
来设置JFrame的大小。尽管如此,当我进行一些碰撞检查(我正在进行突破游戏)时,球完全脱离屏幕底部,然后最终反弹。这是我使用的碰撞代码:if (YPos + height >= MainClass.height) { YVel = YVel * -1; }
。静态高度变量设置为400,并在frame.setSize
调用中使用。这也发生在我的乒乓球比赛中,尽管我用一些硬设定值修正了它。我不想重复这个,因为这是不好的做法。
感谢任何回复,Rees。
答案 0 :(得分:2)
不要设置frame.setSize(480, 400)
或frame.setPreferredSize(480, 400)
用于绘画以使用JPanel
/ JComponent
,然后从此容器返回坐标
默认情况下,在Swing中绘画永远不会返回任何PreferredSize
have to override PreferredSize
for JPanel
/ JComponent
,(请参阅dim.width
,dim.height
此方法会返回Object
的正确坐标( s)在调整大小后添加到JPanel
/ JComponent
然后调用(最后一行代码行)JFrame.pack()
和JFrame.setVisible(true)
5. JFrame
未返回正确的协调必须使用Borders
和Toolbar
计算,但ContentPane
返回内部和正确的大小
答案 1 :(得分:1)
框架有边框。这些边框位于提供的可用空间内,这意味着内容的可用空间为frame size - border insets
相反,请设置内容的首选大小,并使用JFrame#pack
计算帧大小
结帐
有关一些示例和更多详情