如何在Java应用程序中显示图像

时间:2010-05-31 13:03:21

标签: java image swing

我想在我的Java应用程序中显示图像。我找到了一个代码,用于从网络服务器下载图像并在jframe中显示。

我想用标签来显示图片或其他内容。它不应该是JFrame。

这是我的代码:

Image image = null;
try {
    URL url = new URL(
        "http://www.personal.psu.edu/acr117/blogs/audrey/images/image-2.jpg");
    image = ImageIO.read(url);
} catch (IOException e) {
}

// Use a label to display the image
JFrame frame = new JFrame();

JLabel lblimage = new JLabel(new ImageIcon(image));
frame.getContentPane().add(lblimage, BorderLayout.CENTER);
frame.setSize(300, 400);
frame.setVisible(true);

有人可以帮助我吗?

6 个答案:

答案 0 :(得分:4)

使用您提供的代码,您已将图像放在名为JLabel的{​​{1}}中。您现在可以将其添加到面板或任何其他容器对象,如下所示:

lblimage

您可以像处理任何正常组件一样处理该标签(JPanel mainPanel = new JPanel(new BorderLayout()); mainPanel.add(lblimage); // add more components here frame.add(mainPanel); frame.setVisible(true); )。

答案 1 :(得分:3)

您可以尝试这样做:

import javax.swing.ImageIcon;
...
JLabel image = new JLabel(new ImageIcon("imageName.png"));
...
frame.add(image);

我发现它要容易得多:D

编辑:第四次阅读问题时,我意识到这正是你在问题中所做的。现在,我无法确定你究竟要求的是什么。

答案 2 :(得分:2)

我会在其他有用的答案中添加两个注释:

1)不要吞下例外;写入日志或至少打印堆栈跟踪。

catch (IOException e) { e.printStackTrace(); }

2)不要编写frame.setSize(300, 400),而是使用pack(),“使Window的大小适合其子组件的首选大小和布局。”这样,将使用图片的原始尺寸。这也是@ camickr关于布局管理员的建议的基础。

答案 3 :(得分:1)

  

我希望添加越来越多的商品   (按钮和标签)到我的GUI。能够   你请帮帮我

您的问题与标签和图片无关。您需要了解如何使用布局管理器来组织添加到框架中的组件。

首先阅读Layout Managers上的Swing教程。您可以下载和使用大量示例。您还可以在不同的面板上嵌套不同的布局管理器。

答案 4 :(得分:1)

您的代码已经完成了您的需要(在JFrame以外的地方显示它 - 这是一个JLabel - )

对于您在评论中所说的内容,尝试拖放并添加更多组件我认为您需要的是使用GUI BUilder来实现您想要的(不仅显示图像而且添加其他组件)

我建议您使用IntelliJ IDEAGUI Builder

为了全面了解Swing如何运作以及您可以使用它,您还可以查看:The swing tutorial

答案 5 :(得分:1)

试试这个:

JLabel lblNewLabel_1 = new JLabel("");
lblNewLabel_1.setIcon(new ImageIcon(MainMenu.class.getResource("/Images/Bugs.png")));