【问题标题】:Display URL image into a JPanel在 JPanel 中显示 URL 图像
【发布时间】:2017-08-02 19:38:44
【问题描述】:

我正在尝试在我的 Java GUI 上将 URL 图像添加到我的 JPanel 中。 但是当我运行我的程序时,JPanel 仍然是空的:

Image image = null;
try {

    URL url = new URL("http://www.mkyong.com/image/mypic.jpg");
    image = ImageIO.read(url);

} catch (Exception exp) {
    exp.printStackTrace();
}
jPanel2 = new JPanel();
JLabel label = new JLabel(new ImageIcon(image));
jPanel2.add(label);
jPanel2.setVisible(true);

【问题讨论】:

  • 您是否将JPanel 添加到可以实际显示它的东西上,或者您是否假设面板可以神奇地显示自己?
  • 不,我没有,但我是怎么做到的?
  • 那么您的代码还有其他问题,因为我可以正常工作。提供一个runnable example 开始也是有好处的
  • 通过 cmets 诊断这些问题是没有意义的,而且几乎没有用。考虑提供一个runnable example 来证明您的问题。这不是代码转储,而是您正在做的事情的一个示例,它突出了您遇到的问题。这将导致更少的混乱和更好的响应

标签: java image swing url jpanel


【解决方案1】:

此代码有效,希望对您有所帮助。可能需要更多的异常处理。

package tests;


import java.awt.BorderLayout;
import java.awt.Image;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Tests extends JFrame {

public Tests() {
    super("label Test");
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.getContentPane().setLayout(new BorderLayout());

    JPanel panel = new JPanel();
    panel.setLayout(new BorderLayout());

    Image image = null;
    URL url = null;
    try {
        url = new URL("http://www.mkyong.com/image/mypic.jpg");
        image = ImageIO.read(url);
    } catch (MalformedURLException ex) {
        System.out.println("Malformed URL");
    } catch (IOException iox) {
        System.out.println("Can not load file");
    }
    JLabel label = new JLabel(new ImageIcon(image));
    panel.add(label, BorderLayout.CENTER);

    this.getContentPane().add(panel, BorderLayout.CENTER);
    this.pack();
    this.setVisible(true);

}
public static void main(String[] args) {
    Tests d = new Tests();
}
}

【讨论】:

  • 像魅力一样工作,谢谢!也就是说,您的示例中给出的网址已损坏。
猜你喜欢
  • 2017-01-10
  • 1970-01-01
  • 1970-01-01
  • 2016-07-23
  • 2013-01-05
  • 2010-11-17
  • 2013-02-25
  • 1970-01-01
相关资源
最近更新 更多