Java 带有JPanel的JLayeredPane和带有图标的JLabel

Java 带有JPanel的JLayeredPane和带有图标的JLabel,java,swing,jpanel,jlayeredpane,Java,Swing,Jpanel,Jlayeredpane,我正在尝试使用JLayeredPane添加到JFrame上的控件(JPanel和JLabel) 标签在ImageIcon的帮助下有背景图像,面板上有按钮控件。它用背景图像显示jlabel 但面板控件不显示。我正在使用以下代码 try { JLayeredPane layers= new JLayeredPane(); ImageIcon img1= ImageIcon("path upto image"); JLabel l1= new JLabel(""); l1.s

我正在尝试使用
JLayeredPane
添加到
JFrame
上的控件(
JPanel
JLabel

标签在
ImageIcon
的帮助下有背景图像,面板上有按钮控件。它用背景图像显示jlabel

但面板控件不显示。我正在使用以下代码

   try
  {
  JLayeredPane layers= new JLayeredPane();
  ImageIcon img1= ImageIcon("path upto image");
  JLabel l1= new JLabel("");
  l1.setIcon(img1);


  JPanel panel1   = new JPanel();

   layers.add(l1);
  layers.add(panel1);

  add(layers);
 }
catch(Exception ex){ex.printStackTrace();}

如何显示面板控件?

默认情况下,组件没有位置或大小,这意味着如果将它们添加到没有布局管理器的容器中(如
JLayeredPane
),它们将不会显示

由于
JLayeredPane
没有布局管理器,因此您必须承担向组件提供位置和尺寸信息的责任

尝试使用
setSize
setLocation
和/或
setBounds


查看中的示例以了解更多详细信息。

默认情况下,组件没有位置或大小,这意味着如果将它们添加到没有布局管理器的容器中(如
JLayeredPane
),它们将不会出现

由于
JLayeredPane
没有布局管理器,因此您必须承担向组件提供位置和尺寸信息的责任

尝试使用
setSize
setLocation
和/或
setBounds


查看中的示例以了解更多详细信息。

1)要更快获得更好的帮助,请发布一个。2) 对代码块使用一致的逻辑缩进。代码的缩进是为了帮助人们理解程序流程。在JLayeredPane上,项目也在层上以z位置排序。我建议使用layers.add(child,layer)代替简单的add方法。有关这方面的信息,请参阅。1)要更快地获得更好的帮助,请发布一个。2) 对代码块使用一致的逻辑缩进。代码的缩进是为了帮助人们理解程序流程。在JLayeredPane上,项目也在层上以z位置排序。我建议使用layers.add(child,layer)代替简单的add方法。有关信息,请参阅“尝试使用…”。布局管理器!只是因为默认情况下它没有一个,并不意味着你不能设置一个。@AndrewThompson LOL…是的,上下文是nice@AndrewThompson在我(小)看来,
JLayeredPane
非常适合在屏幕上拖拽东西,但那只是我…它现在工作时,我改变了顺序添加现在我添加了第一个jpanel,然后jlabel与背景图像“尝试使用…”。一个布局管理器!只是因为默认情况下它没有一个,并不意味着你不能设置一个。@AndrewThompson LOL…是的,上下文是nice@AndrewThompson在我(小)看来,
JLayeredPane
非常适合在屏幕上拖拽东西,但这只是我…它的工作现在,当我改变了顺序,以添加现在我添加了第一个jpanel,然后jlabel与背景图像