方法没有给出想要的结果?

methods not giving wanted result?

我有这个程序应该是“draw”米老鼠脸:

import java.awt.Canvas;
import java.awt.Graphics;
import javax.swing.JFrame;
import java.awt.Rectangle;

public class Mickey extends Canvas {
    public static void main(String[] args) {
        JFrame frame = new JFrame();
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        Canvas canvas = new Mickey();
        canvas.setSize(900, 500);    

        frame.getContentPane().add(canvas);
        frame.pack();
        frame.setVisible(true);
    }
    public void mickey(Graphics g) {
        Rectangle bb = new Rectangle(400, 400, 100, 100);
        boxOval(g, bb);

        int dx = bb.width/2;
        int dy = bb.height/2;

        Rectangle half = new Rectangle(bb.x, bb.y, dx, dy);

        half.translate(-dx/2, -dy/2);
        boxOval(g, half);

        half.translate(dx*2, 0);
        boxOval(g, half);
    }
    public void boxOval(Graphics g, Rectangle bb) {
        g.fillOval(bb.x, bb.y, bb.width, bb.height);
    }    
}

程序什么都不显示,一片空白,有什么问题吗?

您应该按照 javadoc

中的描述覆盖 paint() 方法

An application must subclass the Canvas class in order to get useful functionality such as creating a custom component. The paint method must be overridden in order to perform custom graphics on the canvas.

所以在这里简单地尝试将您的方法 public void mickey(Graphics g) 重命名为 public void paint(Graphics g)