如何在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);
有人能帮我吗?
使用您提供的代码,您已经将图像放在名为lblimage
的JLabel
。 您现在可以将其添加到面板或任何其他容器对象,如下所示:
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")));