[英]the method is not applicable for the arguments
I get this error: 我收到此错误:
the method pintar() in the type t33.Psicodelia is not applicable for the arguments (int,int,int,int,int,int)
t33.Psicodelia类型的方法pintar()不适用于参数(int,int,int,int,int,int)
How can I solve this? 我该如何解决?
I have two classes and the main tab: 我有两个类和主选项卡:
Class 1 1类
public class Logica {
Psicodelia miPsicodelia;
public Logica() {
}
public void pintar() {
miPsicodelia.pintar(width/2, height/2, height/4, 0, 0, 1);
miPsicodelia.kaleidouno(posX, posY, rad, ang, depth, tam1);
}
public void pressed() {
miPsicodelia.pressed();
}
}
Class 2 2级
public class Psicodelia {
private float anguloGrande;
private int numBolas, contador;
public Psicodelia() {
stroke(255);
this.anguloGrande = 0.0;
this.numBolas = 7;
}
public void pintar() {
//fill((int)random(0, 255), (int)random(0, 255), (int)random(0, 255));
fill(255, 255, 0, (int)random(20, 100));
pintar(width/2, height/2, height/4, 0, 0, 1);
anguloGrande += .02; //velocidad de rotacion
}
public void kaleidouno(float posX, float posY, float rad, float ang, int depth, float tam) { //pinteme las bolas en la pos posX, posY, reciba un float de radianes y de angulos, y por ultimo un int de profundidad
if (depth < contador) {
tam=(int)random(0.5, 1.5);
float anguloPeq = TWO_PI/numBolas;
for (int i=0; i < numBolas; i++) {
float nuevoRad = rad/2; //distancia y tamaño de las bolas entre ellas
float nuevoAng = ang + i*anguloPeq - anguloGrande;
float X = cos(nuevoAng)*rad + posX;
float Y = sin(nuevoAng)*rad + posY;
pintar(X, Y, nuevoRad, nuevoAng, depth + 1, 1);
}
}
else if (rad < 2) {
ellipse(posX, posY, 2.0*tam, 2.0*tam);
}
else {
ellipse(posX, posY, rad*2.0, rad*2.0);
}
}
public void pressed() {
contador++;
if (contador >= 3) {
contador--;
}
}
float getPosX () {
return posX ;
}
float getPosY () {
return posY ;
}
}
// and the main tab
Logica miLogica;
//================================================================
void setup() {
size(800,600);
smooth();
miLogica= new Logica();
}
//================================================================
void draw() {
background(0);
miLogica.pintar();
}
//================================================================
void mousePressed() {
miLogica.pressed();
}
//================================================================
You called the method 你叫方法
Psicodelia miPsicodelia;
miPsicodelia.pintar(width/2, height/2, height/4, 0, 0, 1);
But your Psicodelia
class only has following pintar
method: 但是您的
Psicodelia
类仅具有以下pintar
方法:
public void pintar();
To call it the way you did you must give the method pintar()
the wished parameter. 要按照您的方式进行调用,必须为方法
pintar()
所需的参数。
For Example: 例如:
public void pintar(int a, int b, int c, int d, int e, int f){
// do whatever you want here
}
PS: Do you instantiate your miPsicodelia
Object anywhere? PS:您
miPsicodelia
在任何地方 实例化了 miPsicodelia
对象? If not this will get you a NullPointerException
. 如果不是这样,将为您提供
NullPointerException
。
Well, unless I miss something, your public void pintar()
method is declared with no parameters, so you can't call it with any. 好吧,除非我错过了什么,否则您的
public void pintar()
方法是不带参数的声明的,因此您不能使用任何参数来调用它。 You'd have to declare it with your desired number and types of parameters: 您必须使用所需数量和参数类型进行声明:
public void pintar(int para1, int para2, int para3, int para4, int para5, int para6)
{
//Do something with the parameters.
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.