Java画图问题

import java.awt.*;
import javax.swing.*;

class ihuahua {

public void x(){
        JFrame jf=new JFrame("画图");
        jf.setBounds(300,300,400,400);
        jf.setVisible(true);
}

public void paint (Graphics g){
Color c =g.getColor();
g.setColor(Color.red);
g.fillOval(30,30,50,50);
g.setColor(c);
}
}
class iPaint {
public static void main(String[]args){
new ihuahua().x();
}
}
-----------------------------------------------------------为什么只能显示窗口不能显示图像?有很多人说没有调用paint()方法,但是paint()方法是自动调用的。

综合楼上,修改后的代码
[code="java"]
import java.awt.*;
import javax.swing.*;

class ihuahua extends JFrame {

public ihuahua() {
    super("画图");
    this.setBounds(300, 300, 400, 400);
    this.setVisible(true);
}

public void paint(Graphics g) {
    Color c = g.getColor();
    g.setColor(Color.red);
    g.fillOval(30, 30, 50, 50);
    g.setColor(c);
}

}

class iPaint {

public static void main(String[] args) {
    new ihuahua();
}

}
[/code]

这个类没有继承任何类,它就是个普通类,paint方法怎么会自动调用呢?

嗯 当然是没有调用paint方法,正如楼上所说,当某类继承或间接继承了Component之后,这个对象在初始化后才会自动调用paint方法的。

楼主写的只是一个普通的类,正如楼上所说,他不可能自动调用的,除非你继承某个component,这样初始化对象是才会自动调用。