Rekursives aufrufen führt zu StackOverflowError Panel durchl

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

habe ein Panel, auf dem wiederum Panels sind.

Nun möchte ich alle Componenten auf allen Panels durchlaufen und ggf. Editable auf true/false setzten.

Da ja auf einem Panel wieder ein weiterer Panel sitzen kann, wollte ich das mittels Rekursion lösen.
Leider kriege ich nen StackOverflowError

hier der code
Code:
		private void projektpanel_rechte_vergeben(String berechtigung)
		{
			boolean schreibrecht = false;
			if (berechtigung.indexOf("K") != -1)
				schreibrecht = true;
			
			for (int i=0; i < jPN_Projekt.getComponentCount(); i++)
			{
				Component comp = jPN_Projekt.getComponent(i); 
				//ggf. rekursives aufrufen
				if(comp instanceof JPanel)
					projektpanel_rechte_vergeben(berechtigung);									
				else if ( comp instanceof JTextField)
						((JTextField) comp).setEditable(schreibrecht); 
				else if ( comp instanceof JComboBox)
					((JComboBox) comp).setEditable(schreibrecht); 
				else if ( comp instanceof JTextArea)
					  ((JTextArea) comp).setEditable(schreibrecht); 
			}
			
			
			
		}


hilfe, danke :)
christoph
 
G

Gast2

Gast
ja du durchläufst immer das gleiche panel

1 Möglichkeit(ungetestet)

Code:
      private void projektpanel_rechte_vergeben(String berechtigung,JPanel panel )
      {
         boolean schreibrecht = false;
         if (berechtigung.indexOf("K") != -1)
            schreibrecht = true;
         
         for (int i=0; i < panel .getComponentCount(); i++)
         {
            Component comp = panel.getComponent(i);
            //ggf. rekursives aufrufen
            if(comp instanceof JPanel)
               projektpanel_rechte_vergeben(berechtigung,(JPanel) comp);                           
            else if ( comp instanceof JTextField)
                  ((JTextField) comp).setEditable(schreibrecht);
            else if ( comp instanceof JComboBox)
               ((JComboBox) comp).setEditable(schreibrecht);
            else if ( comp instanceof JTextArea)
                 ((JTextArea) comp).setEditable(schreibrecht);
         }
         
         
         
      }
 
S

SlaterB

Gast
und, was ist deine Frage?

jeder (edit: na gut, manch erfahrener ;) ) Programmierer würde so vorgehen:
aha, ich test das ja mit einem JPanel x, da weiß ich schon selber welche Komponenten a und b sowie Unterpanel c und d mit Komponenen e und f drin sind,
also schaue ich mir genau an, was die Methode macht, baue z.B. ein Logging ein welches ausgibt

"untersuche JPanel y" (zumindest der hashCode() sollte sowas wie ein Name sein)
"JPanel y enthält Anzahl z Komponenten"
"untersuche JTextField m"
"untersuche gleich rekursiv JPanel n unter JPanel y"
"untersuche JPanel n"

usw.

oder man macht gar nix und fragt ein Forum..

Problem: du übergibst der Methode nicht als Parameter, welches JPanel sie untersuchen soll, sie fängt immer mit jPN_Projekt an
 
G

Guest

Gast
@SirWayne
danke...bin nicht drauf gekommen, da es im delphi (habe ich bisher immer programmiert) nicht so war, dass er auch das Panel selber als Component sieht, sondern nur die Componenten, die da drauf sind => ist mir so nicht in den Sinn gekommen...sorry und danke

@SlaterB
Ach wäre ich nur so ein intelligenter Programmierer wie Du, dann muesste ich andere Menschen nicht mit meinen idiotischen Fragen in einem Forum nerven...vielleicht sollte ich doch wieder zurück zur Müllabfuhr gehen... ;-)
 
G

Gast2

Gast
danke...bin nicht drauf gekommen, da es im delphi (habe ich bisher immer programmiert) nicht so war, dass er auch das Panel selber als Component sieht, sondern nur die Componenten, die da drauf sind => ist mir so nicht in den Sinn gekommen...sorry und danke

versteh ich jetzt nicht ganz... du machst doch sogar ein if ob dein componente ein Panel ist :bahnhof: ...
auch in delphi wird er deine variable nicht einfach überschreiben und wird immer über das gleiche iterieren
 
G

Guest

Gast
Hast recht, da war ein Doppelfehler drin...bin mittlerweile auch drauf gekommen...sorry und nochmals danke für die Hilfe...:)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Rekursives Programm zum Anzeigen von Primzahlen Java Basics - Anfänger-Themen 3
C Rekursives Backtracking beim Spiel Peg Java Basics - Anfänger-Themen 22
G Rekursives Programmieren --> harmonische Reihe Java Basics - Anfänger-Themen 3
S Rekursives Problem.... Java Basics - Anfänger-Themen 16
S Rekursives Durchlaufen eines Verzeichnisses - AccessDeniedException behandeln Java Basics - Anfänger-Themen 1
S Rekursives Zählen einer Zahl Java Basics - Anfänger-Themen 8
J Rekursives Parsen (ohne Reg Expressions) Java Basics - Anfänger-Themen 8
S Rekursives Umdrehen, Spiegeln. etc. von Strings Java Basics - Anfänger-Themen 3
I Rekursives Löschen in Binärem Suchbaum Java Basics - Anfänger-Themen 2
L rekursives spiel programmieren Java Basics - Anfänger-Themen 4
M Rekursives suchen im TreeMenu Java Basics - Anfänger-Themen 10
N Rekursives suchen in einer Liste Java Basics - Anfänger-Themen 8
G Primzahlentester als rekursives Programm! Java Basics - Anfänger-Themen 13
H Rekursives einlesen von Lokalen Ordner Java Basics - Anfänger-Themen 4
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
D Switch Case Methode aufrufen Java Basics - Anfänger-Themen 3
D Länge einer Liste aufrufen. Java Basics - Anfänger-Themen 19
M methode aufrufen ohne parameter Java Basics - Anfänger-Themen 1
N Klassen Methoden anderer Klassen aufrufen Java Basics - Anfänger-Themen 4
M variable in anderer funktion aufrufen Java Basics - Anfänger-Themen 10
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
D Methode aus dem Aufrufer aufrufen Java Basics - Anfänger-Themen 1
M Andere Methoden in anderen Klassen aufrufen Java Basics - Anfänger-Themen 11
ashi Variablen aufrufen Java Basics - Anfänger-Themen 17
P Mit dem Scanner Klassen aufrufen Java Basics - Anfänger-Themen 3
U Warum kann ich die Methode in der ENUM Klasse nicht aufrufen? Und warum geht die Switch nicht? Java Basics - Anfänger-Themen 8
D Array in Main Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
M Wie kann eine Methode (string) eine andere Methode (void) mit zufälligen int-Werten aufrufen? Java Basics - Anfänger-Themen 4
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
W Verschiedene Methoden in einer Klasse in der Main aufrufen? Java Basics - Anfänger-Themen 8
W Methoden aufrufen - auch klassenübergreifend? Java Basics - Anfänger-Themen 9
Speedrunner klassen aufrufen Java Basics - Anfänger-Themen 41
D Einen boolischen Wert aus einer Methode in einer anderen Klasse aufrufen? Java Basics - Anfänger-Themen 11
J Interface methode aufrufen (interface parameter) Java Basics - Anfänger-Themen 7
H Kann man Methoden öfter aufrufen? Java Basics - Anfänger-Themen 2
L Webseite aufrufen (HTTP) Java Basics - Anfänger-Themen 8
G Rekursive Methode mit 2 Aufrufen Java Basics - Anfänger-Themen 1
T getAttribut in einer Methode aufrufen Java Basics - Anfänger-Themen 8
O Methode in while-Schleife aufrufen geht nur beim ersten Mal Java Basics - Anfänger-Themen 2
H Methode über String Wert aufrufen Java Basics - Anfänger-Themen 8
HoT verschiedene ArrayLists mit ähnlichem Namen in for-Schleife aufrufen Java Basics - Anfänger-Themen 3
H Methoden in anderen Methoden aufrufen Java Basics - Anfänger-Themen 6
F Methoden Methode richtig aufrufen Java Basics - Anfänger-Themen 3
P Methoden aufrufen - Fehler Java Basics - Anfänger-Themen 20
M Java GUI explorer aufrufen um Pfad zu bekommen Java Basics - Anfänger-Themen 3
Y Java andere Klasse aufrufen Java Basics - Anfänger-Themen 6
V Collections Methode in der Methode aufrufen Java Basics - Anfänger-Themen 2
H Referenz Objekt aufrufen Java Basics - Anfänger-Themen 12
S Methode von vererbter Klasse, statt die der "Mutterklasse" aufrufen Java Basics - Anfänger-Themen 28
M Klassen Methode in anderer Klasse aufrufen? Java Basics - Anfänger-Themen 3
M Methode in anderer Klasse aufrufen Java Basics - Anfänger-Themen 5
E Methode soll andere Methode der selben Klasse aufrufen Java Basics - Anfänger-Themen 28
A Mit einer Methode den Konstruktor aufrufen? Java Basics - Anfänger-Themen 2
S Variablen Klassenvariable über Objekt aufrufen Java Basics - Anfänger-Themen 16
J NullPointerException beim Klonnen eines Arayys und beim aufrufen einer Methode Java Basics - Anfänger-Themen 2
KopaCoda Getter mehrfach aufrufen -> ist das guter code? Java Basics - Anfänger-Themen 3
J Kompilierte Klasse mit Namespace per CMD aufrufen Java Basics - Anfänger-Themen 8
M Klassen Klasse aus anderer Klasse "aufrufen" Java Basics - Anfänger-Themen 2
scratchy1 Kann man in einer Methode eine andere aufrufen? Java Basics - Anfänger-Themen 2
W Wie kann ich meine Methode aufrufen? Java Basics - Anfänger-Themen 29
A Mit JComboBox Ergebnis einen Integer aus einer anderen Klasse aufrufen. Java Basics - Anfänger-Themen 2
scratchy1 Methode aufrufen Java Basics - Anfänger-Themen 59
A OOP Variable in anderer Klasse durch Methode aufrufen und einer anderen Variable gleichsetzen Java Basics - Anfänger-Themen 2
D Compiler-Fehler Aufrufen einer Methode von Main Java Basics - Anfänger-Themen 4
O Rekursiv aufrufen Java Basics - Anfänger-Themen 2
E Best Practice Konstruktor mit bestehender Intanz der gleichen Klasse aufrufen Java Basics - Anfänger-Themen 4
C Methoden Methode Variabel aufrufen Java Basics - Anfänger-Themen 2
W Was bedeutet im Struktogramm „zufall“ aufrufen (keine Parameterübergabe)? Java Basics - Anfänger-Themen 8
E Threads Methode einer Wartenden Klasse aufrufen Java Basics - Anfänger-Themen 3
G Objekt der selben Klasse wie selbst mit Aufrufen des Konstruktors erzeugen Java Basics - Anfänger-Themen 14
J Methoden Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 12
B Funktionen von außen aufrufen Java Basics - Anfänger-Themen 1
A Fenster mit Button aufrufen Java Basics - Anfänger-Themen 3
E Methoden Objekte in Methode aufrufen ohne getter und setter? Java Basics - Anfänger-Themen 1
E Referenzvariable in anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
E Klassen Referenzvariable in anderer Klasse aufrufen. Java Basics - Anfänger-Themen 1
F Methode anderer Klasse aufrufen Java Basics - Anfänger-Themen 1
T CMD über Java-Programm aufrufen Java Basics - Anfänger-Themen 2
G Stringwerte aus anderen Klassen aufrufen. Java Basics - Anfänger-Themen 19
A Methode aufrufen in main-Methode Java Basics - Anfänger-Themen 5
K Compiler-Fehler Objektmethode aus einer statischen Methode heraus aufrufen Java Basics - Anfänger-Themen 34
J Methode über Scanner aufrufen Java Basics - Anfänger-Themen 15
W Methoden Methode ohne Parameter auf Instanz eines Objekts aufrufen? Java Basics - Anfänger-Themen 14
Azazel Klasseninstanzen zufällig aufrufen Java Basics - Anfänger-Themen 3
J Open Office Property Value mit Java aufrufen Java Basics - Anfänger-Themen 0
S Methoden Methode einer anderen Klasse aufrufen? Java Basics - Anfänger-Themen 5
Ghostman1711 Pi berechnung Methode aufrufen Java Basics - Anfänger-Themen 2
W Methoden Methode auf Array aufrufen, und dieses Array dabei ändern? Java Basics - Anfänger-Themen 10
R Methoden Nicht statische Methode aus Main aufrufen Java Basics - Anfänger-Themen 2
A .jar über Webbrowser aufrufen Java Basics - Anfänger-Themen 2
J Methode in main-Methode aufrufen Java Basics - Anfänger-Themen 5
B Methoden Konstruktor im Konstruktor aufrufen Java Basics - Anfänger-Themen 2
M Klassen Main Methode in einer anderen Klasse aufrufen Java Basics - Anfänger-Themen 13
H Nicht Static Funktion ohne Objekt aufrufen? Java Basics - Anfänger-Themen 6
H Klassen varibale einer klasse in einer anderen klasse aufrufen und häufigkeit ausgeben Java Basics - Anfänger-Themen 22
1 Arraylist in anderer Klasse aufrufen Java Basics - Anfänger-Themen 11
T Externe Methoden aufrufen Java Basics - Anfänger-Themen 3
G Methode einer Abstrakten Klasse aufrufen Java Basics - Anfänger-Themen 1
U Erste Schritte Kann length() für Array nicht aufrufen Java Basics - Anfänger-Themen 2
Fishmeaker Methoden mit Methoden aufrufen - Programm hängt sich auf Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben