java - 不加载Swing图像

时间:2012-09-22 04:54:38

标签: java image swing jlabel

每当我尝试添加此图像时,我得到的是一个空白的jFrame。我希望有人可以告诉我我做错了什么。此外,我在图像上完成了一个system.out.println,它正在加载。

        BufferedImage myPicture = ImageIO.read(getClass().getResourceAsStream("image.jpg"));


        javax.swing.JLabel jLabel2 = new JLabel(new ImageIcon(myPicture));            
        jLabel1.add(jLabel2);
        jLabel1.repaint();

1 个答案:

答案 0 :(得分:4)

public class LabelJarSample {

  public static void main(String args[]) {
    String title = "JLabel Sample";
    JFrame frame = new JFrame(title);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    Container content = frame.getContentPane();
    content.setLayout(new GridLayout(2, 2));

    JLabel label1 = new JLabel("Text Label");
    content.add(label1);

    Image warnImage = ImageLoader.getImage(LabelJarSample.class, "Warn.gif");
    Icon warnIcon = new ImageIcon(warnImage);
    JLabel label2 = new JLabel(warnIcon);
    content.add(label2);

    JLabel label3 = new JLabel("Warning", warnIcon, JLabel.CENTER);
    content.add(label3);

    String htmlLabel = "<html><sup>HTML</sup> <sub><em>Label</em></sub><br>"
        + "<font color=\"#FF0080\"><u>Multi-line</u></font>";
    JLabel label4 = new JLabel(htmlLabel);
    content.add(label4);

    frame.setSize(300, 200);
    frame.setVisible(true);
  }
}




final class ImageLoader {

  private ImageLoader() {
  }

  public static Image getImage(Class relativeClass, String filename) {
    Image returnValue = null;
    InputStream is = relativeClass.getResourceAsStream(filename);
    if (is != null) {
      BufferedInputStream bis = new BufferedInputStream(is);
      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      try {
        int ch;
        while ((ch = bis.read()) != -1) {
          baos.write(ch);
        }
        returnValue = Toolkit.getDefaultToolkit().createImage(
            baos.toByteArray());
      } catch (IOException exception) {
        System.err.println("Error loading: " + filename);
      }
    }
    return returnValue;
  }
}

REF:HTTP://www.java2s.com/Code/Java/Swing-JFC/LabelwithImage.htm

注意:还要检查图像位置路径是否正确