尝试在JFrame中显示URL图像

尝试在JFrame窗口中显示URL图像。 如果这可以正常工作,程序运行时,应该打开一个显示图像的窗口。 尝试尝试URL和硬盘路径。

import java.awt.image.BufferedImage; import java.io.IOException; import java.net.URL; import javax.imageio.ImageIO; import javax.swing.*; class ImageInFrame { public static void main(String[] args) throws IOException { String path = "http://chart.finance.yahoo.com/z?s=GOOG&t=6m&q=l"; URL url = new URL(path); BufferedImage image = ImageIO.read(url); JLabel label = new JLabel(new ImageIcon(image)); JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.getContentPane().add(label); f.pack(); f.setLocation(200,200); f.setVisible(true); } } 

编译得很好,但无法运行。 我一直在试验一些YahooFinance数据,因为它的定制很有趣。 希望有人能提供帮助。 干杯。

对我来说很好……

除了你没有处理exception(可能对诊断有用)并且没有真正在EDT中加载程序这一事实,它似乎工作得很好……

在此处输入图像描述

 public class TestURLImage { public static void main(String[] args) { new TestURLImage(); } public TestURLImage() { EventQueue.invokeLater(new Runnable() { @Override public void run() { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { } try { String path = "http://chart.finance.yahoo.com/z?s=GOOG&t=6m&q=l"; System.out.println("Get Image from " + path); URL url = new URL(path); BufferedImage image = ImageIO.read(url); System.out.println("Load image into frame..."); JLabel label = new JLabel(new ImageIcon(image)); JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.getContentPane().add(label); f.pack(); f.setLocation(200, 200); f.setVisible(true); } catch (Exception exp) { exp.printStackTrace(); } } }); } }