如何在JFrame中显示BufferedImage?

我想在同一个JFrame中显示同一图像的变体,例如在JFrame中显示图像,然后用相同图像的灰度替换它。

每次更新图像时都必须重新绘制JFrame

以下是关于该主题的简单谷歌:(我将这些教程用于我所有的Java编码)

Java教程:绘制图像

基于camickr的解决方案(对于像我这样想要快速复制/粘贴代码的懒人),这里有一个代码示例:

 JFrame frame = new JFrame(); frame.getContentPane().setLayout(new FlowLayout()); frame.getContentPane().add(new JLabel(new ImageIcon(img))); frame.getContentPane().add(new JLabel(new ImageIcon(img2))); frame.getContentPane().add(new JLabel(new ImageIcon(img3))); frame.pack(); frame.setVisible(true); //frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // if you want the X button to close the app 

我不确定你的问题是什么,但如果你有一个BufferedImage,那么你只需使用图像创建一个ImageIcon,然后将图标添加到JLabel并像其他任何组件一样将标签添加到GUI。

如果您对如何创建灰度有疑问,我建议您使用这些条件作为搜索关键字搜索网络,我相信您会在那里找到示例。