2016-06-03 1 views
-1

Ich habe die BorderPane in meiner fxml-Datei. Und ich muss aus dem Code in meiner Controller-Klasse Labels zu seinem Zentrum hinzufügen. Wie ich verstanden habe, muss ich es in initialize() Methode tun, aber ich habe nicht herausgefunden, wie dies zu realisieren ist.JavaFX Dynamicly Hinzufügen von Etiketten zu Bereich, in fxml-Datei definiert

P.S. Ich möchte sie nicht statisch in fxml-Datei hinzufügen, da ihre Menge jedes Mal anders ist, es könnte 5 oder 20 sein. In diesem Fall müsste ich ihre maximale Menge hinzufügen und sie unsichtbar machen. Aber ich denke nicht, dass es die beste Entscheidung wäre.

+0

Sie müssen es möglicherweise ohne fxml tun, es wäre viel einfacher. Mit fxml ist es nicht unmöglich (da ich nicht weiß, welches Szenario Sie haben), aber Sie können versuchen, sie zu einer flexiblen Sammlung wie einer ArrayList hinzuzufügen (fügen Sie jedoch viele Labels hinzu, die Sie auflisten möchten) sind in ihm vorhanden). Natürlich könnte es bessere Wege geben, dies zu tun, das ist es, was mir auf Anhieb in den Sinn kommt. –

Antwort

0

Sie müssen Ihren Controller an Ihre FXML binden und dann eine Initialisierungsmethode erstellen, die aufgerufen wird. Sie müssen es mit der Anmerkung @FXML annotieren.

Sie müssen auch Ihr Rahmenfenster mit der @ FXML-Anmerkung verbinden. Hier gehe ich davon aus myBorderPane.

Offensichtlich codiert dies nur ein Etikett in Ihrem Fenster. Sie müssten wahrscheinlich hier etwas Logik erstellen, um das zu generieren, was Sie brauchen. Sie müssen auch auf das Layout usw. achten.

Hoffentlich weist Sie das in die richtige Richtung.

+0

Aber Mann, ich habe bereits solche Variante probiert und bekam nichts Es gibt meinen Code: ' öffentliche Klasse Controller { @FXML BorderPane Scheibe; @FXML private void initialize() { pane.setCenter (neues Label ("XYZ")); } } ' – HadJower5

+0

Wenn Sie Code versucht haben und es nicht funktioniert, müssen Sie das in Ihre Frage stellen. Zeigen Sie nur genügend Code (FXML, Controller und Hauptklasse), um das Problem zu reproduzieren. –

+0

Ich habe meinen Fehler gefunden - ich habe Controller nicht als Fensterparameter in die fxml-Datei hinzugefügt. Jetzt funktioniert alles gut. – HadJower5

Verwandte Themen