Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java层JPanels_Java_Swing_Background_Jpanel_Jlayeredpane - Fatal编程技术网

Java层JPanels

Java层JPanels,java,swing,background,jpanel,jlayeredpane,Java,Swing,Background,Jpanel,Jlayeredpane,我需要分层JPanel,但我不知道如何分层。我有3个面板,第一个是背景,第二个是角色/精灵在第一个面板上移动并分层(背景,第三个是侧边的一个条(用于按钮,与它们的层无关)。如何分层面板1和面板2 编辑:背景由25x25个标签组成的网格组成,每个标签上都有一个图标。请参阅 不要忘记使用: panel.setOpaque(false); 或者您不需要对面板进行分层。您只需在面板上绘制背景图像即可。有关此示例,请参见。一些选项: 使用JLayeredPane,它可以使用z阶整数常量对组件进行分层。

我需要分层JPanel,但我不知道如何分层。我有3个面板,第一个是背景,第二个是角色/精灵在第一个面板上移动并分层(背景,第三个是侧边的一个条(用于按钮,与它们的层无关)。如何分层面板1和面板2

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

请参阅

不要忘记使用:

panel.setOpaque(false);
或者您不需要对面板进行分层。您只需在面板上绘制背景图像即可。有关此示例,请参见。

一些选项:

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

我们最近为我的CSC类制作了一个自上而下的视频游戏。我们所做的只是在JPanel上用paint()方法绘制背景,然后在背景之后绘制所有精灵。我们还使用计时器和ActionListener不断更新JPanel。

除了JPanel的
绘制(…)中的绘制之外,我同意这一点
method。此方法负责绘制组件、其边框和子组件,如果您不想冒险将后两个考虑因素(边框和子组件)的错误绘制弄乱,通常最好使用JPanel的
paintComponent(Graphics g)
方法进行绘制。