Hier is men code:
-------------------------------
import java.awt.*;
import java.applet.*;
public class Opd1 extends Applet
{
int invoer;
TextField invoerveld;
Button knop1;
Spel spel = new Spel();
Label beschr;
public void init()
{
beschr = new Label("Vul hier het aantal paren in (1 tm 20)");
invoerveld = new TextField("Hier intikken svp");
knop1 = new Button("Deel");
add (beschr);
add (invoerveld);
add (knop1);
}
public void paint(Graphics g)
{
if(invoer <21 && invoer > 0)
{
spel.teken(g);
}
}
public boolean action (Event e, Object o)
{
if(e.target == knop1)
{
invoer = Integer.parseInt(invoerveld.getText());
spel.setWaarden(invoer);
repaint();
}
return false;
}
}
class Spel
{
Kaart k = new Kaart();
int invoer;
int teller ; //telt de rijen
int teller2 ; //telt de paren
int teller3 ; //checkt of er 2x dezelfde kaart ligt
double r1;
int getal ;
int[] getalrij ;
void teken(Graphics g)
{
k.teken(g);
}
/**
* @param g is het scherm waarop getekent wordt
*/
void setWaarden(int invoer)
{
this.invoer = invoer;
getalrij = new int[this.invoer*2]; //vul de array met lengte invoer*2
k.xpos = 0;
k.ypos = 65;
teller = 0;
teller2 = 0;
teller3 = 0;
getal = 0;
}
}
class Kaart extends Spel
{
public int xpos ; //de x positie van de kaart
public int ypos ; //de y positie van de kaart
void teken (Graphics g)
{
for (int i = 0; i<this.invoer*2; i++)
{
r1 = Math.random();
getal = (int) (this.invoer*r1+1);
for (int a = 0; a < (getalrij.length);a++)
{
if (getalrij[a] == getal)
{
teller3++;
}
}
if (!(teller3 == 2))
{
getalrij[i] = getal;
g.drawRect(k.xpos+=35,k.ypos,30,30);
g.drawString(String.valueOf(getalrij[i]),k.xpos+5,k.ypos+15);
teller++;
teller2++;
teller3 = 0;
}
else
{
teller3 = 0;
i = teller2-1;
}
if(teller == 7)
{
teller = 0;
k.ypos+=35;
k.xpos = 0;
}
}
}
}
--------------------------------
En dit is de foutmelding:
-----------------------------
java.lang.StackOverflowError
at Kaart.<init>(Opd1.java:84)
at Spel.<init>(Opd1.java, Compiled Code)
at Kaart.<init>(Opd1.java:84)
at Spel.<init>(Opd1.java, Compiled Code)
at Kaart.<init>(Opd1.java:84)
at Spel.<init>(Opd1.java, Compiled Code)
at Kaart.<init>(Opd1.java:84)
at Spel.<init>(Opd1.java, Compiled Code)
at Opd1.<init>(Opd1.java:19)
at java.lang.Class.newInstance0(Native Method)
at java.lang.Class.newInstance(Class.java:241)
at com.borland.jbuilder.runtime.AppletTestbed.a(Unknown Source)
at com.borland.jbuilder.runtime.AppletTestbed.startApplet(Unknown Source)
at com.borland.jbuilder.runtime.AppletTestbed.main(Unknown Source)
------------------------------
Kan iemand me hier mee helpen?
-------------------------------
import java.awt.*;
import java.applet.*;
public class Opd1 extends Applet
{
int invoer;
TextField invoerveld;
Button knop1;
Spel spel = new Spel();
Label beschr;
public void init()
{
beschr = new Label("Vul hier het aantal paren in (1 tm 20)");
invoerveld = new TextField("Hier intikken svp");
knop1 = new Button("Deel");
add (beschr);
add (invoerveld);
add (knop1);
}
public void paint(Graphics g)
{
if(invoer <21 && invoer > 0)
{
spel.teken(g);
}
}
public boolean action (Event e, Object o)
{
if(e.target == knop1)
{
invoer = Integer.parseInt(invoerveld.getText());
spel.setWaarden(invoer);
repaint();
}
return false;
}
}
class Spel
{
Kaart k = new Kaart();
int invoer;
int teller ; //telt de rijen
int teller2 ; //telt de paren
int teller3 ; //checkt of er 2x dezelfde kaart ligt
double r1;
int getal ;
int[] getalrij ;
void teken(Graphics g)
{
k.teken(g);
}
/**
* @param g is het scherm waarop getekent wordt
*/
void setWaarden(int invoer)
{
this.invoer = invoer;
getalrij = new int[this.invoer*2]; //vul de array met lengte invoer*2
k.xpos = 0;
k.ypos = 65;
teller = 0;
teller2 = 0;
teller3 = 0;
getal = 0;
}
}
class Kaart extends Spel
{
public int xpos ; //de x positie van de kaart
public int ypos ; //de y positie van de kaart
void teken (Graphics g)
{
for (int i = 0; i<this.invoer*2; i++)
{
r1 = Math.random();
getal = (int) (this.invoer*r1+1);
for (int a = 0; a < (getalrij.length);a++)
{
if (getalrij[a] == getal)
{
teller3++;
}
}
if (!(teller3 == 2))
{
getalrij[i] = getal;
g.drawRect(k.xpos+=35,k.ypos,30,30);
g.drawString(String.valueOf(getalrij[i]),k.xpos+5,k.ypos+15);
teller++;
teller2++;
teller3 = 0;
}
else
{
teller3 = 0;
i = teller2-1;
}
if(teller == 7)
{
teller = 0;
k.ypos+=35;
k.xpos = 0;
}
}
}
}
--------------------------------
En dit is de foutmelding:
-----------------------------
java.lang.StackOverflowError
at Kaart.<init>(Opd1.java:84)
at Spel.<init>(Opd1.java, Compiled Code)
at Kaart.<init>(Opd1.java:84)
at Spel.<init>(Opd1.java, Compiled Code)
at Kaart.<init>(Opd1.java:84)
at Spel.<init>(Opd1.java, Compiled Code)
at Kaart.<init>(Opd1.java:84)
at Spel.<init>(Opd1.java, Compiled Code)
at Opd1.<init>(Opd1.java:19)
at java.lang.Class.newInstance0(Native Method)
at java.lang.Class.newInstance(Class.java:241)
at com.borland.jbuilder.runtime.AppletTestbed.a(Unknown Source)
at com.borland.jbuilder.runtime.AppletTestbed.startApplet(Unknown Source)
at com.borland.jbuilder.runtime.AppletTestbed.main(Unknown Source)
------------------------------
Kan iemand me hier mee helpen?
Ducati: making mechanics out of riders since 1946