Hallo zusammen,
ich benötige mal kurz eure Hilfe bei einem rekursiven Ablauft.
Und zwar möchte mittels Rekursion verschachtelte Elemente durchlaufen und gewisse Methoden aufrufen. Im Grunde geht es um ein verschachteltes Layout in welchem weitere Komponenten (auch weitere Layouts mit weiteren Komponenten) untergebracht sind. Sollte aber keine Rolle spielen, da es eigentlich nur um den Ablauf geht.
Ich habe mal versucht das Ganze mittels einer kleine Zeichnung (siehe Anhang) darzustellen.
Das schwarze ist dabei das äußerste Element in welchem 2 kleinere Elemente (rot und gelb) untergebracht sind usw.
Jetzt bräuchte ich einen Ablauf, mit welchem ich alle Elemente deaktivieren kann, ausser die die auf dem Weg zum gewünschtne liegen.
Bsp: Das gewünschte Element ist das braune
--> aktiviert bleibt: schwarz, rot und braun
rest deaktiviert.
ich benötige mal kurz eure Hilfe bei einem rekursiven Ablauft.
Und zwar möchte mittels Rekursion verschachtelte Elemente durchlaufen und gewisse Methoden aufrufen. Im Grunde geht es um ein verschachteltes Layout in welchem weitere Komponenten (auch weitere Layouts mit weiteren Komponenten) untergebracht sind. Sollte aber keine Rolle spielen, da es eigentlich nur um den Ablauf geht.
Ich habe mal versucht das Ganze mittels einer kleine Zeichnung (siehe Anhang) darzustellen.
Das schwarze ist dabei das äußerste Element in welchem 2 kleinere Elemente (rot und gelb) untergebracht sind usw.
Jetzt bräuchte ich einen Ablauf, mit welchem ich alle Elemente deaktivieren kann, ausser die die auf dem Weg zum gewünschtne liegen.
Bsp: Das gewünschte Element ist das braune
--> aktiviert bleibt: schwarz, rot und braun
rest deaktiviert.
Code:
private boolean changeVisibility(Component component) {
if(component.getClass().equals(HorizontalLayout.class)){
for(int i = 0; i < ((HorizontalLayout)component).getComponentCount(); i++){
component.setVisible(changeVisibility(((HorizontalLayout)component).getComponent(i)));
}
}
if(component.equals(braunesKästchen)){
return true;
} else {
return false;
}
Anhänge
Zuletzt bearbeitet: