我有这个程序应该是" 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);
}
}
程序只显示任何内容并且是空白的,有什么问题吗?
答案 0 :(得分:3)
您应该按照javadoc
中的描述覆盖paint()
方法
应用程序必须为
Canvas
类创建子类才能使其有用 功能,例如创建自定义组件。paint
方法 必须覆盖才能在画布上执行自定义图形。
因此,您只需尝试将方法public void mickey(Graphics g)
重命名为public void paint(Graphics g)
。