有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Roguelike开发jlabel over jlabel

又是我。 我仍在发展我的流氓形象,但我还有一个问题。我使用Jlabel的2D数组在GridLayout上显示我的地图,它工作得非常好。但是现在,我想在地板上画我的角色,怪物等等。我是否被迫将布局切换到JLayeredPane,或者是否有任何方法可以通过GridLayout实现这一点


共 (2) 个答案

  1. # 1 楼答案

    使用JLabel速度非常慢,您应该使用monospace字体并直接写入JPanel的图形对象,或者使用库

    我推荐我的,那是SquidLib。这是最新的,最具特色的,也是唯一一个仍在继续发展的。它也是唯一一个拥有大量示例并支持Java可以加载的任何字体的版本

    如果您更习惯于使用curses或libtcod方式与控制台进行交互,Blacken是个不错的选择,但它们不允许任意使用字体

    没有链接到libjcsi,因为我没有足够的代表发布超过2个链接。不过,谷歌很容易做到这一点

  2. # 2 楼答案

    您应该使用多个JPanel

    • 如果已经完成了map(floor),请将该代码转移到JPanel(使用GridLayout
    • 制作另一个JPanel用于显示怪物和其他东西。(以你喜欢的任何一个为准)
    • 将这些JPanel添加到具有JLayeredPane的帧中

    所以两者都有优势

    注意:别忘了调用顶部的JPanel上的setOpaque(false)

    祝你好运