это я снова. Я все еще развиваю свой рогалий, но у меня другая проблема. Я использую 2D-массив Jlabel для отображения моей карты на GridLayout, который работает отлично. Но теперь я хочу нарисовать своего персонажа, монстров и т.д. На полу. Я вынужден переключить свой макет на JLayeredPane, или я могу достичь этого с помощью GridLayout?
Вы должны использовать несколько JPanel
.
JPanel
(с помощью GridLayout
)JPanel
для отображения монстров и других вещей. (LayoutManager
бы LayoutManager
вам не нравился).JPanel
в свой фрейм, который имеет JLayeredPane
.Таким образом, у вас будут преимущества обоих.
Примечание. Не забудьте вызвать setOpaque(false)
на JPanel
сверху.
Удачи.
Использование JLabel чрезвычайно медленное, вы должны либо использовать моноширинный шрифт, либо записывать непосредственно в графический объект вашего JPanel или использовать библиотеку.
Я рекомендую мой, который является SquidLib. Он самый современный, имеет большинство функций и является единственным, кто все еще продолжает развиваться. Он также является единственным, у которого много примеров и поддержка буквально любого шрифта, который может загружать Java.
Blacken хорош, если вы больше привыкли к проклятиям или способу взаимодействия с консолью libtcod, но они не позволяют использовать произвольный шрифт.
Нет ссылки на libjcsi, потому что мне не хватает репутации для публикации более двух ссылок. Это достаточно легко для Google.