2013-02-09 99 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返回內,適當的大小

相關問題