2011-04-27 66 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  | | 
| |___________________________________| | 
|_______________________________________|