【问题标题】:Displaying image in a JFrame在 JFrame 中显示图像
【发布时间】:2011-08-25 12:57:36
【问题描述】:

我有一个 JFrame,我想在单击加载图像按钮时将图像加载到它。单击下一步按钮后,我想更改图像。将图像加载到变量是没有问题的。我将其加载到Image img。我只是想展示一下。这意味着我想将它加载到 JLable 或 JPanel。我怎样才能做到这一点。请帮帮我。

【问题讨论】:

    标签: java swing icons jframe imageicon


    【解决方案1】:

    让我们使用ImageIcon & JLabel.setIcon(...)

    【讨论】:

    • Image 只是一个图像......它是图形数据。您如何获得它或数据是否从 jpeg、png、bmp 或任何格式解码无关紧要。
    • 我使用了 ImageIcon,但它只显示图像的一部分。不是整个图像。
    • 将图像调整为容器大小。 Image.getScaledInstance(...)
    【解决方案2】:

    JLabel 支持Icon/ImageIcons。这意味着您可以创建一个简单的 JLabel,将 ImageIcon 传递给它,然后让它显示。这应该可以满足您的需求。

    JLabel label = new JLabel(new ImageIcon(image));
    

    【讨论】:

    • 我正在使用 NetBeans IDE,所以我无法访问构造函数。还有其他方法吗?而且它不会加载 jpgs。
    • 我不太明白 NetBeans 与此有什么关系,但它确实适用于 JPG。 leepoint.net/notes-java/GUI-lowlevel/graphics/45imageicon.html
    • 我使用了图像图标,但它只显示图像的一部分。不是整个图像。
    【解决方案3】:

    创建一个自定义组件并覆盖paint(Graphics g) 方法。使用给定的Graphics 对象绘制图像。如果您需要一些更高级的选项,可以先转换为 Graphics2D。查看Graphics(2D)定义的方法,你很快就会找到你需要的。

    JPanel 的子类可以很好地工作。最佳选择实际上取决于您如何管理 JFrame 的内容。

    【讨论】:

    • 我如何在 NetBeans 中做到这一点?
    • 您是在编写 NetBeans 插件模块,还是只是编写 Java 应用程序?在后一种情况下,IDE 无关紧要。但我想您问是因为您可能正在使用 NetBeans 提供的构建器创建 GUI。即使你这样做了,你仍然需要自己对某些组件进行一些编程。不知道NetBeans有没有预烘焙的图片展示组件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-27
    • 1970-01-01
    • 2011-04-02
    相关资源
    最近更新 更多