在Java JFrame中显示图像

7

在Java的JFrame中,如何以特定坐标显示图像是最佳的方式?

我知道有很多方法可以做到这一点,我只需要知道最好的方法来显示我计划在框架中移动的图像!

3个回答

3

使用ImageIcon和JLabel是最简单的方法。你实际上可以将其添加到JFrame的JLayeredPane中的一个级别,该级别在contentPane上方或下方,具体取决于您的要求。


2

开发自定义组件并覆盖paintComponent()方法来实现此功能。开发自定义组件可以为进一步的增强提供灵活性。您可以轻松地添加平移、缩放等功能。

然后将此组件添加到您的JFrame中即可。


2
我建议将其添加为ImageIcon:
ImageIcon image = new ImageIcon("image.jpeg");
add(image);

编辑(如何添加特定坐标):

首先说明,通常(99%的情况下)不鼓励自己定位JComponents。使用LayoutManager为您定位它们,并处理调整大小。
不过我会告诉您如何自己定位:

  • 将您的LayoutManager设置为null: setLayout(null)
  • 将您的ImageIcon设置为特定坐标:image.setLocation(x, y)

谢谢!我真的很喜欢这个想法,它简单而且有意义。 不过,像我这样的人怎么在特定的坐标上显示这张图片呢? - Ben Hagel
1
我在我已经编辑的指令中给出了说明。将布局设置为null,并使用.setLocation(x,y)。 - Hidde
1
算了吧!我忘记把图像放到面板里再添加面板,而不是立即添加图像!感谢你的所有帮助! - Ben Hagel
@Hidde:我尝试了 myJPanel.add(image),但它提示说 - "类型“Container”的方法“add(Component)”不适用于参数(ImageIcon)"。 - URL87
@URL87 看起来你不是在尝试将图像添加到 JPanel,而是一个 Container 对象。你必须有一个继承自 JComponent 的对象才能将 ImageIcon 添加到它上面。 - Hidde
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接