package 图片;import javax.swing.JFrame;public class DisplayImage extends JFrame{
public DisplayImage(){
add(new ImageCanvas()); this.setSize(600,600);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
new DisplayImage();
}
}
package 图片;import java.awt.Graphics;
import java.awt.Image;import javax.swing.ImageIcon;
import javax.swing.JPanel;public class ImageCanvas extends JPanel{ ImageIcon imageIcon = new ImageIcon("chess.png");
Image image = imageIcon.getImage();

public void paintComponent(Graphics g){
super.paintComponent(g); if(image != null){
System.out.println("dsdsdds");
g.drawImage(image, 0, 0, this.getWidth(), this.getHeight(), null);
}
}
}
最后能输出dsdsdds说明图片位置没问题,但是就是显示不出图片

解决方案 »

  1.   

    可以在你的System.out.println("dsdsdds")后面加一句
    System.out.println(image.getHeight(this));查看一下图片的高度,我查看后为-1,也就是说图片没有导入成功,image虽不为空,但是可能有默认值。我用的是netbeans,最后图片放在了项目根目录下才显示出来。
    再或者drawImage最后的参数改成this试试,我这里this和null都成功了。表示不懂
      

  2.   

    谢谢了,System.out.println(image.getHeight(this));确实是-1,后来看了看,果断图片名称的后缀名错了,无语