如何在Java中将图像带到前台?

时间:2014-04-14 13:48:08

标签: java image swing graphics pacman

我试图用Java创建一个Pacman游戏,到目前为止我已经显示了背景图像(蓝色和黑色迷宫),但是我无法显示Pacman的图像。当我尝试以与我显示背景相同的方法显示他时,除非我稍微手动改变Jframe的大小,否则他不会出现。即便如此,当他出现时,他的照片右下角还有一个小白方块。我该怎么做才能解决这个问题?有没有其他方法可以插入pacman图像?

这是代码:

  JFrame window = new JFrame();

  ImageImplement pacman = new ImageImplement(new ImageIcon("C:\\Users\\16ayoubc\\Desktop\\Pacman-moving.gif").getImage());  
  ImageImplement panel = new ImageImplement(new ImageIcon("C:\\Users\\16ayoubc\\Desktop\\background.png").getImage());

  pacman.setLocation(255, 255);
  pacman.setVisible(true);
  pacman.setOpaque(true);
  window.add(pacman);
  window.add(panel);

  window.setVisible(true);
  window.setSize(576,655);
  window.setName("Pacman");
  window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

3 个答案:

答案 0 :(得分:1)

直接为容器使用JLayeredPane而不是窗口,并在添加组件时指定组件的深度(z顺序)。

答案 1 :(得分:0)

window.add(pacman);
window.add(panel);

你在添加背景之前添加了pacman,所以它正在绘制pacman精灵并且你没有看到它。确保你以相反的顺序在游戏中绘制你的项目,所以首先绘制背景,然后是pacman。

答案 2 :(得分:0)

 window.add(pacman);
 window.add(panel);

您无法将两个组件添加到BorderLayout的CENTER中。

如果你想让pacman出现在面板上,那么你可以将pacman添加到窗口中:

//window.add(pacman);
panel.add(packman)
window.add(panel);