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

Posted

技术标签:

【中文标题】如何在Java中将图像带到前台?【英文标题】:How to bring an image to the foreground in Java? 【发布时间】:2014-05-28 12:25:09 【问题描述】:

我正在尝试用 Java 创建一个吃豆人游戏,到目前为止,我已经显示了背景图像(蓝色和黑色的迷宫),但是我无法显示吃豆人的图像。当我尝试以与显示背景相同的方法显示他时,除非我稍微手动更改 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);

【问题讨论】:

【参考方案1】:
 window.add(pacman);
 window.add(panel);

您不能将两个组件添加到 BorderLayout 的 CENTER。

如果您希望 pacman 出现在面板上,则将 pacman 添加到窗口中:

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

【讨论】:

【参考方案2】:

将窗口的 JLayeredPane 直接用于容器,并在添加组件时指定组件的深度(z 顺序)。

【讨论】:

我认为这个选项会起作用,但我们是初学者,如果你能提供一些实现它的示例代码,那就太好了。那将不胜感激。谢谢【参考方案3】:
window.add(pacman);
window.add(panel);

您在添加背景之前添加了 pacman,因此它正在绘制 pacman 精灵并且您看不到它。确保在游戏中以相反的顺序绘制物品,因此先绘制背景,然后再绘制 pacman。

【讨论】:

以上是关于如何在Java中将图像带到前台?的主要内容,如果未能解决你的问题,请参考以下文章

如何将窗户带到前面?

如何在 Ubuntu 中将 xampp 控制面板设置带到桌面? [关闭]

如何在swift 4中将表格视图控制器前面的按钮带到? [重复]

如何在 OS X 上将进程窗口置于前台?

如何在java中将文本添加到图像中?

如何在 Java 中将多个可拖动图像添加到 JFrame?