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