我想在我的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);
有人可以帮助我吗?
答案 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 IDEA的GUI Builder
为了全面了解Swing如何运作以及您可以使用它,您还可以查看:The swing tutorial
答案 5 :(得分:1)
试试这个:
JLabel lblNewLabel_1 = new JLabel("");
lblNewLabel_1.setIcon(new ImageIcon(MainMenu.class.getResource("/Images/Bugs.png")));