Hallo an alle, ich versuche JavaFX zu lernen.Wie würde ich etwas in einer FXML-Datei in Main referenzieren?
IS gibt es sowieso Ich kann einen dieser Knoten oder Elemente aus der main.java Datei ändern. Wie würde ich LowTextField Text aus der Datei main.java ändern?
Ich versuche mit
lowTextField.setText ("noch lernen"); in der Startmethode und das löst Arten von Fehlern aus. Null Pointers etc. Was macht da, weil ich einfach nicht weiß, wie man dieses Textfeld aus der fxml in main java referenziert. Wie würde ich das machen?
Dies ist der Haupt:
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
primaryStage.setTitle("Hello World");
primaryStage.setScene(new Scene(root, 300, 275));
primaryStage.show();
lowTextField.setText("This is The Console"); //<<this des not work
}
public static void main(String[] args) {
launch(args);
}
}
Diese Datei mein Controller ist. Es tut jetzt nichts, aber ich verstehe, dass die Steuerung für Aktionen, Eingänge usw.
public class Controller{
@FXML Button toolBarBtn1;
@FXML Button toolBarBtn2;
@FXML TextField lowTextField;
@FXML public BorderPane Root;
}
weiß, daß ich es wirklich etwas einfach, dass ich tue, aber ich versuche nur, um eine Idee zu bekommen.
Ich würde wirklich jede Hilfe zu schätzen wissen.
Sie müssen den Controller auf der 'FXMLLoader'-Instanz und nicht auf dem' Parent' setzen. ('Parent' hat keine' setController (...) 'Methode.) –
Ah, hoppla! Ich habe meine Antwort korrigiert. Danke, @James_D – Zephyr
Und Sie müssen 'setController()' auch aufrufen, bevor Sie 'load()' aufrufen, sonst werden die Felder nicht injiziert ... –