java的背景知识

java的背景知识,java,swing,jlabel,Java,Swing,Jlabel,所以我现在正在做一个项目。基本上,现在我有两个按钮,两个文本标签,当你点击一个按钮时会改变,然后是背景。背景的问题是它没有停留在它应该呆的地方。按钮/标签位于顶部,背景位于所有内容的下方。如果我移除按钮/标签,背景将填充整个程序。下面是一些代码: ImageIcon backg = new ImageIcon(getClass().getResource("grastri.png")); background = new JLabel(backg); add(background); backg

所以我现在正在做一个项目。基本上,现在我有两个按钮,两个文本标签,当你点击一个按钮时会改变,然后是背景。背景的问题是它没有停留在它应该呆的地方。按钮/标签位于顶部,背景位于所有内容的下方。如果我移除按钮/标签,背景将填充整个程序。下面是一些代码:

ImageIcon backg = new ImageIcon(getClass().getResource("grastri.png"));
background = new JLabel(backg);
add(background);
background.setAlignmentX(CENTER_ALIGNMENT);
background.setAlignmentY(CENTER_ALIGNMENT);

如果有人能帮忙,那就太好了

您的背景位于正在添加到GUI的JLabel中。如果您希望背景位于所有内容的后面,则可以将JPanel作为主容器,并使用JPanel的
paintComponent(Graphics g)
方法绘制图像,或者将保存图像的JLabel作为主容器(但先给它一个布局并使其不透明).

在绘制窗口时,您可能必须调用Repaint。这听起来像是正常的布局行为。你在使用布局吗?一般来说,JLabel不能在上面有东西。