2011-04-27 87 views
0

我目前正在Java遊戲中工作,並且出現問題。這是一個策略遊戲。更新JPanel的位置

我的遊戲區域或地圖是一個JPanel,我把它放在一個JScrollPane中,允許你滾動地圖。我在地圖上放置了其他JPanel,例如酒吧中的關於您當前資源的信息。當然,當我滾動時,JPanels不會遵循,現在我想知道我最好的策略是什麼?

現在,我使用鍵盤箭頭滾動,然後我使用JPanels setBounds我想要在同一個方向移動。例如,對於右箭頭鍵,我增加了setBounds參數(x,y,sizeX,sizeY)中x值的值。這不是非常漂亮,如果您按住右箭頭鍵幾秒鐘,具有圖像的JPanel開始閃爍一下。

我有什麼選擇?謝謝你的時間!

+0

你應該發佈一些代碼,讓我們更好地理解你在做什麼。無論如何,根據我的理解,你正在向地圖JPanel添加「bar JPanel」。爲什麼?將酒吧的JPanel添加到地圖的父組件,並使用zvalues建立重疊順序。 – Heisenbug 2011-04-27 20:02:47

回答

1

我會把「資源」 - 欄等外面的滾動面板。即,讓主面板有一個BorderLayout,並讓地圖區域爲中心組件,並將資源欄作爲南面組件。

 Main panel (BorderLayout) 
_______________________________________ 
| ___________________________________ | 
| |         |A| | 
| |         | | | 
| |         | | | 
| |  Center component:   | | | 
| |         | | | 
| | (Scrollpane containing the map) | | | 
| |         | | | 
| |         | | | 
| |_________________________________|v| | 
| |<_______________________________>| | 
|          | 
| ___________________________________ | 
| |         | | 
| | South component: Resources  | | 
| |___________________________________| | 
|_______________________________________|