Java绘图画圆(代码正确,但是抽口没有显示出圆)

以下是代码,请指教:
/*
* 功能:Java绘图原理
*/
import java.awt.*;
import javax.swing.*;
public class Demo9_1 extends JFrame
{
MyPanel mp=null;
public static void main(String[] args)
{
Demo9_1 demo9_1=new Demo9_1();
}
public Demo9_1()
{
mp=new MyPanel();
this.add(mp);

this.setSize(400, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
//定义一个MyPanel(我自己的面板,用于绘图和显示绘图的区域)
class MyPanel extends JPanel
{
//覆盖JPanel的paint方法
//Graphics是绘图的重要类,可以理解为画笔
public void panint(Graphics g)
{
//1.调用父类函数完成初始化任务
super.paint(g);//这句话不能少
//先画一个圆
g.drawOval(10, 10, 30, 30);
}
}

程序改为了
import java.awt.*;
import javax.swing.*;
public class Demo9_1 extends JFrame
{
MyPanel mp=null;
public static void main(String[] args)
{
Demo9_1 demo9_1=new Demo9_1();
}
public Demo9_1()
{
mp=new MyPanel();

this.add(mp);

this.setSize(400, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
//定义一个MyPanel(我自己的面板,用于绘图和显示绘图的区域)
class MyPanel extends JPanel
{
//覆盖JPanel的paint方法
//Graphics是绘图的重要类,可以理解为画笔
public void paintComponent(Graphics g)
{

//先画一个圆
g.drawOval(10, 10, 30, 30);
}
}

覆盖paintComponent

paint方法实际上将绘制工作委托给三个受保护的方法:paintComponent、paintBorder 和 paintChildren。按列出的顺序调用这些方法,以确保子组件出现在组件本身的顶部。一般而言,不应在分配给边框的 insets 区域绘制组件及其子组件。子类可以始终只重写此方法。只想特殊化 UI(外观)委托的 paint 方法的子类应该只重写 paintComponent。(摘自jdk)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-08-15
paint方法的方法名拼错了,

public void panint(Graphics g)
改成
public void paint(Graphics g)本回答被提问者采纳
第2个回答  2010-08-15
一楼是正解
第3个回答  2010-08-15
二楼才是正解