Pane nach speziellen Child Objekten durchsuchen

SyntaxTalksToMe

Bekanntes Mitglied
Guten Abend,

ich möchte einem in einem Pane, das verschiedene Child Objekte besitzt, nur bestimmte Objekte löschen. In meinem Fall möchte ich alle Buttons löschen, die einem bestimmten Pane unterliegen.

Ich hab schon einige Sachen probiert. Hat aber bis jetzt nicht so geklappt wie ich wollte. Und bei pane.getChilds().Clear(), wird leider alles gelöscht.

Das aktuell vielversprechenste ist dass hier:

Code:
    public void DeleteButtons(Pane p) {

        for(Node b : p.getChildren())
        
        if(b instanceof Button) {
            
          
        }

bin ich da auf dem richtigen Weg? oder ist das der falsche Ansatz
 
Vielen Dank. Funktioniert tadellos.

Das ist ja mit Lambda Ausdrücke. Ich schätze, dass ohne ein Lambda Ausdruck zu bewerkstelligen, würde eine Fülle an Code benötigen. Würde bei meinem obigen beschrieben Weg auch irgendwie funktionieren? Ich hatte nur an der Stelle ein Remove oder Delete vermisst 🙂. Also bei meiner Variante.
 
So viel Code wäre das gar nicht.
Ein Probleme gäbe es mit deinem Code oben: Du würdest eine Liste verändern, über die du im selben Moment iterierst. Das würde zu einer ConcurrentModificationException führen.
Wenn du einen Iterator benutzt würde das ganze gehen:
Java:
for( Iterator<Node> it = pane.getChildren().iterator(); it.hasNext();) {
    if(it.next() instanceof Button) {
        it.remove();
    }
}
 

Zurück
Oben