Roguelike development - jlabel over jlabel

1

это я снова. Я все еще развиваю свой рогалий, но у меня другая проблема. Я использую 2D-массив Jlabel для отображения моей карты на GridLayout, который работает отлично. Но теперь я хочу нарисовать своего персонажа, монстров и т.д. На полу. Я вынужден переключить свой макет на JLayeredPane, или я могу достичь этого с помощью GridLayout?

Теги:
layout
jlayeredpane

2 ответа

1
Лучший ответ

Вы должны использовать несколько JPanel.

  • Если вы уже сделали карту (пол), сдвиньте этот код на JPanel (с помощью GridLayout)
  • Сделайте еще один JPanel для отображения монстров и других вещей. (LayoutManager бы LayoutManager вам не нравился).
  • Добавьте эти JPanel в свой фрейм, который имеет JLayeredPane.

Таким образом, у вас будут преимущества обоих.

Примечание. Не забудьте вызвать setOpaque(false) на JPanel сверху.

Удачи.

  • 0
    Спасибо за ваш ответ. Я думал, что смогу сделать что-то быстрее для орудий, но я думаю, что у меня нет выбора (хотя это не кажется трудным).
1

Использование JLabel чрезвычайно медленное, вы должны либо использовать моноширинный шрифт, либо записывать непосредственно в графический объект вашего JPanel или использовать библиотеку.

Я рекомендую мой, который является SquidLib. Он самый современный, имеет большинство функций и является единственным, кто все еще продолжает развиваться. Он также является единственным, у которого много примеров и поддержка буквально любого шрифта, который может загружать Java.

Blacken хорош, если вы больше привыкли к проклятиям или способу взаимодействия с консолью libtcod, но они не позволяют использовать произвольный шрифт.

Нет ссылки на libjcsi, потому что мне не хватает репутации для публикации более двух ссылок. Это достаточно легко для Google.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню