Java Layer JPanels

时间:2013-05-19 04:45:55

标签: java swing background jpanel jlayeredpane

我需要分层JPanels,但我不知道如何。我有3个面板,第一个用于背景,第二个是用于字符/精灵移动并分层第一个面板(背景,第三个是一个条到侧面(用于按钮,无关)与他们的图层)。如何分层面板1和面板2?

编辑:背景由25x25标签组成,每个标签都有一个图标。

3 个答案:

答案 0 :(得分:2)

一些选项:

  • 使用JLayeredPane,它可以使用z顺序整数常量对组件进行分层。请记住,在执行此操作时,您实际上也使用空布局,因此您将完全负责设置添加到JLayeredPane的所有组件的大小和位置。
  • 如果所有背景都在绘制图像,您可以使用单个JPanel,然后简单地将图像绘制为JPanel的paintComponent方法中显示的BufferedImage。精灵也会被涂上,但它的位置会有所不同。

答案 1 :(得分:1)

请参阅How to Use Layered Panes

不要忘记使用:

panel.setOpaque(false);

或者您不需要对图层进行分层。您只需在面板上绘制背景图像即可。有关此示例,请参阅Background Panel

答案 2 :(得分:0)

我们最近刚为CSC课程开发了一款自上而下的视频游戏。我们所做的就是在JPanel的paint()方法中绘制背景,然后绘制所有精灵。我们还使用了Timer和ActionListener来不断更新JPanel。