Java,将面板放在框架的背景图像上

时间:2013-04-29 18:53:16

标签: java image swing layout

我正在尝试写一个复古的蛇游戏。我设置了一个旧诺基亚的背景图片,我想从它的屏幕上播放蛇。但是,我无法将我的游戏面板放在我的背景图像上。 我能这样做吗? 我将此代码用于我的背景图片。

感谢。

JFrame frame = new JFrame("Retro Snake");
    frame.getContentPane().add(new GamePanel());
    try {
        frame.setContentPane(new JLabel(new ImageIcon(ImageIO.read(new File("Images\\background.jpg")))));
    } catch (IOException e) {
        e.printStackTrace();
    }
    frame.setLocation(500, 100);
    frame.pack();
    frame.setVisible(true);

1 个答案:

答案 0 :(得分:3)

  • 不要将JPanel添加到您只在下一行或两行丢弃的contentPane(正如您当前所做的那样)。
  • 通过setLayout(new BorderLayout())
  • 为您的新contentPane-JLabel提供BorderLayout
  • 将游戏面板添加到上面的JLabel,Borderlayout.CENTER。
  • 请确保通过在其上调用setOpaque(false)使您的游戏面板JPanel不透明,以便后台JLabel显示其图像。