JavaFX eine Vbox Instanz pro Pane?

unknown

Bekanntes Mitglied
Hallo zusammen

Ich habe eine Frage bezüglich JavaFX:

Ich habe eine Klasse, welche von VBox vererbt. Wenn ich eine Instanz davon mache und diese dann in zwei verschiedenen BorderPanes einfügen möchte, wird sie nur auf der letzte BorderPane angezeigt:

Java:
public class AutoDetail extends VBox { ... }

public class Test extends Application {

public void start(Stage primaryStage) throws Exception {
AutoDetail ad = new AutoDetail ();

BorderPane pane1 = new BorderPane();
BorderPane pane2 = new BorderPane();
 
//in diesem Fall wird der Inhalt nur auf pane2 angezeigt.
pane1.setCenter(ad);
pane2.setCenter(ad);
...
}
...
 }
Mit zwei Instanzen von AutoDetail funktioniert es dann wieder. Ich möchte allerdings wissen, weshalb das Verhalten so ist?
 
Wenn ich mich recht entsinne, kann in JavaFX eine UI nur einen Parent haben. Indem du ihn also zuweist, wird der Parent auf den zuletzt zugewiesenen BorderPane gesetzt. Dadurch sollte es nur ein mal existieren.
Lösung: Zwei mal instantiieren.

Kurze Frage aber: Warum erweiterst du VBox? Das war vielleicht in Swing und SWT (Composite) üblich, aber in JavaFX kommt mir das eigentlich nur recht selten unter. Jedenfalls nicht für die "Otto-Normal"-Anwendungen.
Überlege dir vielleicht, ob du nicht lieber mit der XML-Beschreibung für JavaFX - FXML genannt - arbeiten möchtest...
 
Vielen Dank für deine Antwort.

In diesem Beispiel, das ich bekommen habe, hatte man VBox erweitert.
Ich schaue mir das mit FXML etwas genauer an.
Falls du mir diesbezüglich irgendwelche Quellen empfehlen kannst, würde ich mir diese auch gerne anschauen.
 

Zurück
Oben