Ich habe eine GUI, die ich erstellt habe, und ich möchte eine ProgressIndicator
hinzufügen, wenn die Anwendung etwas im Hintergrund tut. Ich habe eine Tab
im Konstruktor ähnlich der folgenden erstellt:Wie kann ich einen Knoten zu einer HBox innerhalb eines Tab JavaFX hinzufügen?
public class myGUI {
Tab myTab;
myGUI() {
myTab = new Tab("My Tab");
HBox view = new HBox();
VBox left = new VBox();
BorderPane right = new BorderPane();
/*A lot of other things are declared that go in left and right*/
view.getChildren().addAll(left, right);
myTab.setContent(view);
}
...
Später habe ich eine Taste drücken, die die Anwendung macht einen Hintergrund-Task gestartet wird, und ich möchte ein ProgressIndicator
zum Zentrum von hinzufügen die BorderPane
. Ich habe versucht, so etwas wie die folgenden:
private void handleMyAction(MouseEvent e) {
myTab.getContent().getChildren().get(1).setCenter(new ProgressIndicator(-1.0f));
}
Ich würde denken, dass dies funktioniert jedoch getContent
ein Node
zurückkehrt, und ich kann getChildren
nicht auf diesen Node
nennen. Wie kann ich auf die BorderPane
zugreifen, um eine weitere Node
hinzuzufügen, ohne die BorderPane
ein Feld in meiner Klasse zu machen?
Warum gehst du nicht einfach machen die 'eine Instanzvariable BorderPane', statt einer lokalen Variablen? –
Ich könnte, ich fühle mich einfach wie eine schlampige Lösung, deshalb habe ich es in der Frage spezifiziert, aber du hast Recht, das werde ich tun, wenn ich keinen anderen Weg finde, es zu tun. – mpowell48
Ich habe diesen letzten Satz verpasst. Ich sehe nicht wirklich, warum du das "schlampig" denkst. –