菜鸟问题用JPanel画图
[code=Java][/code]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说明图片位置没问题,但是就是显示不出图片
------解决方案--------------------
可以在你的System.out.println("dsdsdds")后面加一句
System.out.println(image.getHeight(this));查看一下图片的高度,我查看后为-1,也就是说图片没有导入成功,image虽不为空,但是可能有默认值。我用的是netbeans,最后图片放在了项目根目录下才显示出来。
再或者drawImage最后的参数改成this试试,我这里this和null都成功了。表示不懂