Обновление местоположения JPanel - PullRequest
0 голосов
/ 27 апреля 2011

Я сейчас работаю над игрой на Java, и возникла проблема. Это стратегическая игра.

Моя игровая область или карта - это JPanel, которую я вставил в JScrollPane, что позволяет вам прокручивать карту. Я поместил другие JPanels на карту, например, панель с информацией о ваших текущих ресурсах. Конечно, когда я прокручиваю, эти JPanels не следуют, и теперь мне интересно, какова моя лучшая тактика для этого?

Пока я использую стрелки клавиатуры для прокрутки, затем я использую setBounds из JPanels, я хочу двигаться в том же направлении. Например, для клавиши со стрелкой вправо я увеличиваю значение значения x в параметре setBounds (x, y, sizeX, sizeY). Это не очень красиво, и если вы удерживаете клавишу со стрелкой вправо в течение нескольких секунд, JPanel с изображением начинает немного мигать.

Какие у меня варианты? Спасибо за ваше время!

1 Ответ

1 голос
/ 28 апреля 2011

Я бы поставил «ресурсы» -бары и т. Д. Вне панели прокрутки.То есть, пусть на главной панели есть BorderLayout, а область карты будет центральным компонентом, и поместите панель ресурсов в качестве южного компонента.

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