Wo liegt der Fehler?(Java)?

Im folgenden Quellcode der in Java geschrieben ist hat sich ein Fehler versteckt den ich mit meinem einsteiger Wissen nicht beheben kann.
Ich bitte im ein mögliche Verbesserung zu in zum laufen bringt.

Der Quellcode:


import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.util.Random;

public class Zufallszahl extends JFrame{

public static void main(String[] args) {
new Zufallszahl();
}

Zufallszahl zufallszahl = new Zufallszahl();
int b=zufallszahl.zufallszahl(1, 2);


public int zufallszahl(int min, int max){
Random random = new Random();
return random.nextInt(max - min + 1) + min;

}


public Zufallszahl(){
super("Caipi");

if(b==2){
setDefaultCloseOperation(EXIT_ON_CLOSE);
getContentPane().add(new JLabel(new ImageIcon("caipi.jpg")));
pack();
setVisible(true);
}
if(b==1){ System.out.println("eins");}
else{System.out.println("nichts");}
}

}

2012-08-19T12:32:25Z

Es ist eine recht komplexer Fehler und zwar:


Exception in thread "main" java.lang.StackOverflowError
at java.awt.Insets. (Unknown Source)
at sun.awt.windows.WToolkit.getScreenInsets(Native Method)
at sun.awt.windows.WToolkit.getScreenInsets(Unknown Source)
at java.awt.Window.init(Unknown Source)
at java.awt.Window. (Unknown Source)
at java.awt.Frame. (Unknown Source)
at javax.swing.JFrame. (Unknown Source)
at Zufallszahl. (Zufallszahl.java:24)
at Zufallszahl. (Zufallszahl.java:12)
at Zufallszahl. (Zufallszahl.java:12)

2012-08-19T12:36:55Z

Es liegt meiner Meinung kein Fehler in den Klammer vor die Letzte Klammer ist die schließung Klammer von der aller ersten Klammer.

2012-08-23T03:23:08Z

Hier ! !
V V




Ich hab das nicht ganz verstanden und gebe die Möglichkeit einem User noch mal alles genauer zusammen zu fassen und

nur den Quellcode korrigiert einzufügen.
Und sofort die beste Antwort zu sein!!!!!!!!!!!

🐟 Fish 🐟2012-08-21T08:17:00Z

Beste Antwort

Irgendwann bekommst du einen Blick für so offensichtliche Klammerfehler..alles ab der Deklaration Zufallszahl zufallszahl .... Liegt außerhalb des Main Blocks

public class Zufallszahl extends JFrame{

public static void main(String[] args) {
new Zufallszahl();
}

>>>Zufallszahl zufallszahl = new Zufallszahl();
...
Das liegt ausserhalb des Main Blocks und kann somit nicht ausgewertet werden!!

Marga Gürtzsch2012-08-19T17:00:26Z

bei dem: }

2 sind zu viel, einer ist nicht geschlossen