用颜色填充圆圈

时间:2014-04-22 18:32:30

标签: java swing colors drawing

我正在尝试运行一个用颜色填充圆圈的程序我不确定我做错了什么我得到一个找不到符号错误我的fillOval命令这里是我的代码。此外,填充应与绘制的圆圈颜色相同。

import javax.swing.JApplet;
import java.awt.*;
import java.util.Random;

public class Drawing extends JApplet
{
public void paint(Graphics page)
{
Random generator=new Random();


float r = generator.nextFloat();
float g = generator.nextFloat();
float b = generator.nextFloat();

Color randomColor = new Color(r, g, b);

int random,randomx,randomy;
int x,y;
int width, height;
setBackground(Color.white);

random=generator.nextInt(24)+8;
randomx=generator.nextInt(24);
randomy=generator.nextInt(24);
x=randomx;
y=randomy;
width=random*2;
height=random*2;
page.drawOval(x, y, width, height);
page.setColor(randomColor);
fillOval(x, y,width,height);
}
}

2 个答案:

答案 0 :(得分:2)

fillOvalGraphics的方法,而非您的自定义Drawing类。

fillOval(x, y, width, height);    

应该是

page.fillOval(x, y, width, height);

答案 1 :(得分:2)

问题:

  1. 您自己调用fillOval而不是任何变量,例如page变量。
  2. 除非在特殊情况下,否则不应覆盖任何组件的绘制方法。
  3. 您不应直接在顶级窗口中绘图,例如JApplet。
  4. 您发布了未格式化的所有左对齐代码,使其难以阅读和理解。
  5. 我建议:

    1. 创建一个扩展JPanel并覆盖其paintComponent(Graphics g)方法的类。
    2. 不要忘记在paintComponent覆盖方法中调用super的paintComponent方法super.paintComponent(g),以便组件在绘制之前完成所有管家绘画。
    3. 使用传递给方法参数的Graphic对象进行绘制。
    4. 将JPanel添加到JApplet以显示它。
    5. 在此处发布代码时,请通过给出正确的缩进格式来格式化已发布的代码,通常每个块有3个空格,并确保同一块上的所有代码都在相同的缩进级别上。您的合作将受到高度赞赏,并有可能提高您获得体面和迅速答案的机会。请记住,我们都是志愿者,因此您应该尽力帮助您。