Java 如何更改paintComponent中圆的大小?

Java 如何更改paintComponent中圆的大小?,java,paintcomponent,repaint,Java,Paintcomponent,Repaint,我有一个paintComponent,在这里我必须画一个大小为int size的圆,因为它必须通过setSmallCircle()和setbigcirle()进行更改。但是我对java非常陌生,我不知道如何做 到目前为止,我有: public class ReactionPanel extends JPanel { boolean setSmallCircle= false; Color color = new Color (255,0,0); //color = red Color c =

我有一个paintComponent,在这里我必须画一个大小为
int size
的圆,因为它必须通过
setSmallCircle()
setbigcirle()
进行更改。但是我对java非常陌生,我不知道如何做

到目前为止,我有:

public class ReactionPanel extends JPanel {

boolean setSmallCircle= false;
Color color = new Color (255,0,0); //color  = red
Color c = new Color (255,255,0); //color = yellow
int size;
int x = 250;
int y = x;

public void paintComponent(Graphics g){
  super.paintComponent(g);
  if (setSmallCircle == true){
    setSmallCircle(g);
  }
  else if(setSmallCircle==true){
    setBigCircle(g);
  }
}

void setSmallCircle(Graphics g, Color c){
  size = 50;
  g.setColor(c);
  g.drawOval(x,y,size,size);
  g.fillOval(x,y,size,size);
}

void setBigCircle(Graphics g, Color c){
  size = 150;
  g.setColor(c);
  g.drawOval(x,y,size,size);
  g.fillOval(x,y,size,size);
}
}
但它似乎没有被编译。(错误:
ReactionExperiment.ReactionPanel中的setBigCircle(java.awt.Graphics,java.awt.Color)无法应用于(java.awt.Graphics)
) 我做错了什么?我怎样才能解决这个问题

哦,还有,我还得打电话重画。我是在我的类ReactionPanel的结束大括号之前还是在其他地方这样做的


谢谢你的帮助

您已将
setSmallCircle()
声明为

void setSmallCircle(Graphics g, Color c)
这意味着您需要向其传递两个参数,一个
图形
对象和一个
颜色
对象。然而,你只称之为

setSmallCircle(g);
它只将
图形
对象传递给方法

if (setSmallCircle == true){
  setSmallCircle(g);
}
else if(setSmallCircle==true){ // Error
  setBigCircle(g);
}
相反,请在paintComponent中执行以下操作:

if (setSmallCircle) {
    size = 50;
} else {
    size = 150;
}
g.setColor(c);
g.drawOval(x,y,size,size);
g.fillOval(x,y,size,size);
可以使用
someBoolean
而不是
someBoolean==true
,并且 而不是
someBoolean!=true
不使用(
):
!一些布尔值

在这里,一个
else
就足够了。

哪一行导致了该错误?行
setSmallCircle(g)
setbigcrourcle(g)
嗯,好的,是的,这似乎是合乎逻辑的。但是如何添加参数
Color-Color
Color-c
?因为(如下所示)我不能按照我的作业要求放置
Color.YELLOW
。@Laynie_x您已经声明了一些颜色变量。用那些。p、 也许
yellow
c
更好。这样就不需要注释来描述变量。我同意,但我需要使用
颜色
c
。那么,我是否使用
Color.c
来执行此操作?(当我这样做时,它会给我另一个错误)
Color.c
告诉编译器在
Color
类中找到一个名为
c
的静态变量。您的
c
既不是
static
也不是
Color
类。要访问自己的类中的变量,只需单独使用变量名。好的,我理解。谢谢你的意见:)谢谢!这也使我的代码看起来更好,更容易阅读。谢谢你的建议:)