小编典典

JFrame中的图像相互覆盖,彼此之间未同时显示两个图像

java

public class Board extends JFrame
{
public void bd()
{

    JFrame frame=new JFrame();
    JLabel background1 = new JLabel(new ImageIcon("background.png"));
    JLabel knight=new JLabel(new ImageIcon("knight.jpg"));
    frame.add(background1);
    frame.add(knight);
    frame.pack();
    frame.setResizable(false);     
    frame.setVisible(true);





    }
}

我的代码遇到了一些麻烦

当我添加骑士图像时,背景图像将消失并且仅出现骑士图像。我如何使图像重叠或使背景图像像背景一样工作


阅读 302

收藏
2020-11-30

共1个答案

小编典典

JLabel background1 = new JLabel(new ImageIcon(“background.png”));
JLabel knight=new JLabel(new ImageIcon(“knight.jpg”));
frame.add(background1);
frame.add(knight);

我猜您真正想要的是在顶部(z轴)上显示骑士,因此您需要执行以下操作:

JLabel background1 = new JLabel(new ImageIcon("background.png"));
background.setLayout( new BorderLayout() );
JLabel knight=new JLabel(new ImageIcon("knight.jpg"));
background1.add(knight);
frame.add(background1);

那就是您需要遵循父/子层次结构:

  1. 将背景添加到框架
  2. 将骑士添加到背景中
2020-11-30