这道程序图片怎么没显示出来啊??????
package chapter13;
import java.awt.*;
import javax.swing.*;public class DisplayImage extends JFrame{
public DisplayImage(){
add(new ImageCanvas());
}
public static void main(String[] args) {
JFrame frame = new DisplayImage();
frame.setTitle("DisplayImage");
frame.setSize(300, 300);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}class ImageCanvas extends JPanel{
ImageIcon imageIcon = new ImageIcon("image/mm2.jpg");//图片确认存在
Image image1 = imageIcon.getImage();
public void paintCompnent(Graphics g){
super.paintComponent(g); if(image1 != null)
g.drawImage(image1, 0, 0, getWidth(), getHeight(), this);
}
}
package chapter13;
import java.awt.*;
import javax.swing.*;public class DisplayImage extends JFrame{
public DisplayImage(){
add(new ImageCanvas());
}
public static void main(String[] args) {
JFrame frame = new DisplayImage();
frame.setTitle("DisplayImage");
frame.setSize(300, 300);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}class ImageCanvas extends JPanel{
ImageIcon imageIcon = new ImageIcon("image/mm2.jpg");//图片确认存在
Image image1 = imageIcon.getImage();
public void paintCompnent(Graphics g){
super.paintComponent(g); if(image1 != null)
g.drawImage(image1, 0, 0, getWidth(), getHeight(), this);
}
}
super.paintComponent(g); if(image1 != null)
g.drawImage(image1, 0, 0, getWidth(), getHeight(), this);
}改成public void paint(Graphics g){
在Canvas中(其实是任意组件中)绘制图像或者文本都要依赖于paint方法的调用,它就是做绘制工作的。它是JVM自动调用的。不需要通过对象名.paint的显式调用。
而你的程序中用的是自定义的paintCompnent,Java编译器不会去自动调用它,自然就无法绘制了。