我从drawFace功能中抽出一张脸。我想在paint方法中调用该函数,因此它会在我指定的x / y坐标上多次绘制面。
public class smilingfacefunction extends Canvas
{
public void paint(Graphics g)
{
drawFace(g, 500, 300);
drawFace(g, 100, 100);
}
public void drawFace (Graphics g, int x, int y)
{
g.setColor(Color.YELLOW);
g.fillOval(100, 100, 100, 100);
g.setColor(Color.BLUE);
g.fillOval(125, 125, 20, 20);
g.fillOval(155, 125, 20, 20);
g.setColor(Color.red);
g.drawArc(125,150,40,40,0,-180);
}
public static void main(String[] args)
{
JFrame win = new JFrame("Smile");
win.setSize(700, 700);
win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
win.add(new smilingfacefunction());
win.setVisible(true);
}
}
答案 0 :(得分:1)
您的drawFace
方法必须使用x
和y
参数作为从哪里开始绘图的参考点。像这样:
public void drawFace (Graphics g, int x, int y)
{
g.setColor(Color.YELLOW);
g.fillOval(x, y, 100, 100);
g.setColor(Color.BLUE);
g.fillOval(x + 25, y + 25, 20, 20);
g.fillOval(x + 55, y + 25, 20, 20);
g.setColor(Color.red);
g.drawArc(x + 25, y + 50, 40, 40, 0, -180);
}
现在,您可以微调绘图,以便将元素放置在每个面所需的位置。