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与背景图像