# Lotto Applet



## spacken (21. Jan 2009)

Ich habe ein Lotto Applet erstellt, bei dem man 7 Zahlen eingeben kann und diese werden dann mit 7 Zufallszahlen verglichen. Hat super funktioniert! 
Dann kam ich auf die Idee das ganze in einer Schleife laufen zu lassen, bis es mindestens 3 Richtige gibt. 
Dabei sollte er auch noch die Klicke zaehlen. 
Theoretisch funktioniert das ja auch noch ganz gut, aber jedes Mal wenn ich es versuche, auch nur mit mindestens einem Richtigen, zeigt er mir nach ca zwei Minuten eine Fehlermeldung an:



```
init:
deps-jar:
Compiling 1 source file to /Users/spacken/Documents/Schule/Informatik/12. Dezember/Netbeans/Lotto/build/classes
compile-single:
run-applet:
[color=#444444][color=red]Exception in thread "AWT-EventQueue-1" 
java.lang.OutOfMemoryError: Java[/color] heap space
        at java.lang.Class.getDeclaredMethods0(Native Method)[/color]
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2395)
        at java.lang.Class.getDeclaredMethod(Class.java:1907)
        at java.lang.Thread$1.run(Thread.java:1514)
[color=#444444][color=red]        at java.security.AccessController.doPrivileged(Nati[/color]ve Method)
[/color]        at java.lang.Thread.auditSubclass(Thread.java:1506)
        at java.lang.Thread.isCCLOverridden(Thread.java:1493)
        at java.lang.Thread.init(Thread.java:316)
        at java.lang.Thread.<init>(Thread.java:426)
        at java.awt.EventDispatchThread.<init>(EventDispatchThread.java:51)
        at java.awt.EventQueue$1.run(EventQueue.java:681)
       [color=#444444][color=red] at java.security.AccessController.doPrivileged(Nat[/color]ive Method)[/color]
        at java.awt.EventQueue.initDispatchThread(EventQueue.java:678)

        at java.awt.EventDispatchThread.run(EventDispatchThread.java:141)
```

Hier mal meinen Applet:



```
private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {                                      
int  e1=0, e2=0, e3=0, e4=0, e5=0, e6=0, e7=0, a1=0, a2=0, a3=0, a4=0, a5=0, a6=0, a7=0;
int anzahl_richtige=0;
int klicker=0;

jLabel3.setText("");

 while(anzahl_richtige<2)
{
 anzahl_richtige=0;
    klicker++;
jLabel4.setText(String.valueOf(klicker));

e1=Integer.parseInt(this.tf_e_1.getText());
e2=Integer.parseInt(this.tf_e_2.getText());
e3=Integer.parseInt(this.tf_e_3.getText());
e4=Integer.parseInt(this.tf_e_4.getText());
e5=Integer.parseInt(this.tf_e_5.getText());
e6=Integer.parseInt(this.tf_e_6.getText());
e7=Integer.parseInt(this.tf_e_7.getText());

if((e1==e2)||(e1==e3)||(e1==e4)||(e1==e5)||(e1==e6)||(e1==e7)||(e2==e1)||(e2==e3)||(e2==e4)||(e2==e5)||(e2==e6)||(e2==e7)||(e3==e1)||(e3==e2)||(e3==e4)||(e3==e5)||(e3==e6)||(e3==e7)||(e4==e1)||(e4==e3)||(e4==e2)||(e4==e5)||(e4==e6)||(e4==e7)||(e5==e1)||(e5==e3)||(e5==e2)||(e5==e4)||(e5==e6)||(e5==e7)||(e6==e1)||(e6==e3)||(e6==e2)||(e6==e5)||(e6==e4)||(e6==e7)||(e7==e1)||(e7==e2)||(e7==e3)||(e7==e4)||(e7==e5)||(e7==e6))
{    
jLabel5.setText("Nicht moeglich");
}

if((e1>49)||(e2>49)||(e3>49)||(e4>49)||(e5>49)||(e6>49)||(e7>49))
{
jLabel5.setText("Nicht moeglich");
}
else    
    
{

while((a1==a2)||(a1==a3)||(a1==a4)||(a1==a5)||(a1==a6)||(a1==a7)||(a2==a1)||(a2==a3)||(a2==a4)||(a2==a5)||(a2==a6)||(a2==a7)||(a3==a1)||(a3==a2)||(a3==a4)||(a3==a5)||(a3==a6)||(a3==a7)||(a4==a2)||(a4==a3)||(a4==a2)||(a4==a5)||(a4==a6)||(a4==a7)||(a5==a2)||(a5==a3)||(a5==a4)||(a5==a2)||(a5==a6)||(a5==a7)||(a6==a2)||(a6==a3)||(a6==a4)||(a6==a5)||(a6==a2)||(a6==a7)||(a7==a2)||(a7==a3)||(a7==a4)||(a7==a5)||(a7==a6)||(a7==a2))
{   
a1=(int)Math.round((Math.random()*48)+1);
a2=(int)Math.round((Math.random()*48)+1);
a3=(int)Math.round((Math.random()*48)+1);
a4=(int)Math.round((Math.random()*48)+1);
a5=(int)Math.round((Math.random()*48)+1);
a6=(int)Math.round((Math.random()*48)+1);
a7=(int)Math.round((Math.random()*48)+1);
}

this.tf_a_1.setText(String.valueOf(a1));
this.tf_a_2.setText(String.valueOf(a2));
this.tf_a_3.setText(String.valueOf(a3));
this.tf_a_4.setText(String.valueOf(a4));                                     
this.tf_a_5.setText(String.valueOf(a5));
this.tf_a_6.setText(String.valueOf(a6));
this.tf_a_7.setText(String.valueOf(a7));



}

if((e1==a1)||(e1==a2)||(e1==a3)||(e1==a4)||(e1==a5)||(e1==a6)||(e1==a7))
    anzahl_richtige++;
if((e2==a1)||(e2==a2)||(e2==a3)||(e2==a4)||(e2==a5)||(e2==a6)||(e2==a7))
    anzahl_richtige++;
if((e3==a1)||(e3==a2)||(e3==a3)||(e3==a4)||(e3==a5)||(e3==a6)||(e3==a7))
    anzahl_richtige++;
if((e4==a1)||(e4==a2)||(e4==a3)||(e4==a4)||(e4==a5)||(e4==a6)||(e4==a7))
    anzahl_richtige++;
if((e5==a1)||(e5==a2)||(e5==a3)||(e5==a4)||(e5==a5)||(e5==a6)||(e5==a7))
    anzahl_richtige++;
if((e6==a1)||(e6==a2)||(e6==a3)||(e6==a4)||(e6==a5)||(e6==a6)||(e6==a7))
    anzahl_richtige++;
if((e7==a1)||(e7==a2)||(e7==a3)||(e7==a4)||(e7==a5)||(e7==a6)||(e7==a7))
    anzahl_richtige++;



{
   jLabel3.setText(String.valueOf(anzahl_richtige));

  
 
}
}
}
```



Waere nett wenn ihr mir helfen koenntet!


----------



## SlaterB (21. Jan 2009)

> while(anzahl_richtige>=0) 

wann wird diese Schleife jemals beendet?
mir scheint, dass anzahl_richtige nicht unter 0 sinken kann

verwende in deinem Programm Ausgaben wie
System.out.println("durchlaufe Schleife zum "+anzahl+" -ten Mal");
um zu verstehen, was dein Programm überhaupt tut

wenn du vom Applet aus solche Meldungen nicht lesen kannst, 
dann schreibe erstmal ein normales JFrame mit der gleichen Funktion


----------



## spacken (21. Jan 2009)

Oh, eigentlich sollte da auch hin 

while(anzahl_richtige<2)

Das andere war nur mal zu testen..


----------

