2013-02-09 108 views
1

我正在使用frame.setSize(480, 400)来设置我的JFrame的大小。尽管如此,当我正在做一些碰撞检查时(我正在制作一个突破游戏),球完全离开屏幕底部,然后最终反弹。这是我正在使用的碰撞代码:if (YPos + height >= MainClass.height) { YVel = YVel * -1; }。静态高度变量设置为400,并在frame.setSize调用中使用。这也发生在我的乒乓球游戏中,尽管我用一些硬性值来修正它。我不想重复这个,因为这是不好的做法。我的JFrame大小与设置的大小不匹配

感谢您的回复,里斯。

+0

请发表更多代码。你有帆布吗?进入另一个JPanel?使用getWidth()和getHeight()就可以了。 – Aubin 2013-02-09 20:34:31

回答

2
  1. 不设置frame.setSize(480, 400)frame.setPreferredSize(480, 400)

  2. 绘画使用JPanel/JComponent,然后从这个容器在Swing默认返回坐标

  3. 绘画永远不会返回任何PreferredSizehave to override PreferredSize for JPanel/JComponent, (请参阅dim.widthdim.height此方法返回适当的坐标Object(s)添加到JPanel/JComponent,resi泽太)

  4. 然后调用(最后行代码)JFrame.pack()JFrame.setVisible(true)

5. JFrame不恰当的回报协调必须与它的BordersToolbar计算,但ContentPane返回内,适当的大小