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

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

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

这是我的代码:

Image image = null; try { URL url = new URL( "http://sofzh.miximages.com/java/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); 

有人能帮我吗?

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

 JPanel mainPanel = new JPanel(new BorderLayout()); mainPanel.add(lblimage); // add more components here frame.add(mainPanel); frame.setVisible(true); 

您可以像处理任何普通组件一样处理该标签( lblimage )。

您可以尝试这样做:

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

我发现它要容易得多:D

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

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

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

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

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

您的代码已经满足您的需求(以JFrame以外的方式显示它 – 这是一个JLabel – )

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

我建议你使用IntelliJ IDEA的GUI Builder

为了全面了解Swing如何工作以及你可以用它做什么,你还可以看看: swing教程

我想在GUI中添加越来越多的项目(按钮和标签)。 你能帮我么

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

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

尝试这个:

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