当前位置: 代码迷 >> J2SE >> 初学者有关问题用JPanel画图
  详细解决方案

初学者有关问题用JPanel画图

热度:14   发布时间:2016-04-24 02:07:53.0
菜鸟问题用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都成功了。表示不懂