我有这个paintComponent,我必须绘制一个大小为int size
的圆圈,因为它必须由setSmallCircle()
和setBigCircle()
改变。但我对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);
}
}
但它似乎没有编译。 (错误:setBigCircle(java.awt.Graphics,java.awt.Color) in ReactionExperiment.ReactionPanel cannot be applied to (java.awt.Graphics)
)
我做错了什么,我该如何解决这个问题?
感谢您的帮助!
答案 0 :(得分:0)
您已将setSmallCircle()
声明为
void setSmallCircle(Graphics g, Color c)
这意味着您需要传递两个参数,一个Graphics
对象和一个Color
对象。但是,您只能使用
setSmallCircle(g);
仅将Graphics
对象传递给方法。
答案 1 :(得分:0)
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 == true
可以使用someBoolean
和。{
而不是someBoolean != true
不使用{!
):!someBoolean
。
这里else
就足够了。