#java #position #jpanel #setbounds
#java #положение #jpanel #установленные границы
Вопрос:
в настоящее время я работаю над игрой на Java, и возникла проблема. Это стратегическая игра.
Моя игровая область или карта — это JPanel, которую я помещаю в JScrollPane, позволяя вам прокручивать карту. Я разместил другие JPanels на карте, например, панель для информации о ваших текущих ресурсах. Конечно, когда я прокручиваю, эти JPanels не следуют, и теперь я задаюсь вопросом, какова моя лучшая тактика для этого?
На данный момент я использую стрелки клавиатуры для прокрутки, затем я использую setBounds JPanels, которые я хочу переместить в том же направлении. Например, для клавиши со стрелкой вправо я увеличиваю значение x в параметре setBounds (x, y, sizeX , sizeY). Это не очень красиво, и если удерживать клавишу со стрелкой вправо в течение нескольких секунд, JPanel, на которой есть изображение, начинает немного мерцать.
Какие у меня есть варианты? Спасибо за ваше время!
Комментарии:
1. вам следует опубликовать некоторый код, чтобы мы лучше понимали, что вы делаете. В любом случае, из того, что я понял, вы добавляете «панель JPanel» в панель map JPanel. Почему? Добавьте JPanel панели в родительский компонент карты и используйте zvalues для установления порядка перекрытия.
Ответ №1:
Я бы разместил панели «ресурсы» и т.д. За пределами панели прокрутки. Т.Е. пусть на главной панели есть BorderLayout
и пусть область карты будет центральным компонентом, а панель ресурсов — южным компонентом.
Main panel (BorderLayout)
_______________________________________
| ___________________________________ |
| | |A| |
| | | | |
| | | | |
| | Center component: | | |
| | | | |
| | (Scrollpane containing the map) | | |
| | | | |
| | | | |
| |_________________________________|v| |
| |<_______________________________>| |
| |
| ___________________________________ |
| | | |
| | South component: Resources | |
| |___________________________________| |
|_______________________________________|