Rekursiver Durchlauf verschachtelter Elemente

Otz

Bekanntes Mitglied
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.

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

  • Unbenannt.png
    Unbenannt.png
    4,6 KB · Aufrufe: 32
Zuletzt bearbeitet:
mir ist gerade aufgefallen, dass es sich ja im grunde nur um einen baum abstieg handelt, bei dem alle knoten markiert werden sollen, die auf dem pfad zum gewüschten knoten liegen. odeR?!
 

Zurück
Oben