# Textfield bei starten füllen.



## Daniel_84 (25. Jun 2015)

Hallo,

in meiner Main Class lese ich eine von mir erzeuge .properties Datei aus und übergebe diesen Wert dann via FXML Loader in meinen Controller.

In meinen Controller schreibe ich den übergebenen Wert in einen für mich passende String Variable.

Wenn ich die Variable mit


```
System.out.println(variable);
```

in der Console ausgeben lasse steh auch der richtige Wert drinnen, ABER ich hätte gerne das der Wert dieser Variable in einen Textfield anzeigt wird wenn ich mein Programm starte.

Bei Java habe ich einfach ein formWindowActivated Ereignis genommen aber sowas finde ich in JavaFX und im SceneBuilder leider nicht.

Könntet ihr mir da bitte weiterhelfen?

Danke Grüße
Daniel


----------



## dzim (25. Jun 2015)

Kannst du nicht einfach in der #initialize() Methode des Controllers ein Textfeld befüllen? Diese Methode stellt doch sozusagen die "Aktivierung" dieser GUI-Komponente dar...


----------



## Daniel_84 (25. Jun 2015)

Hier mal mein Code den ich im Controller stehen habe.


```
public class SampleController implements Initializable{

    @FXML TextField text_eingabe;
         
    public void datenuebergabe(String s) {
        text_eingabe.setText(s);
        System.out.println(s);
    }
```


System.out klappt.

Das Textfield bleibt leider leer!


----------



## Harry Kane (25. Jun 2015)

Kompletten Code bitte. Welche Lösungsvorschläge erwartest du zu deinem Codeschnipsel, ausserdem dem Hinweis, dass es so funktionieren müsste?
Im obigen Beispiel wird text_eingabe nirgends initialisiert. Ausserdem ist nicht klar ersichtlich, ob die System.out Ausgabe wirklich durch den Befehl in der datenuebergabe-Methode zustande kommt oder vielleicht auf einem anderen Weg.


----------



## Daniel_84 (25. Jun 2015)

Sorry für die Codefetzen musste schnell gehen da ich zur Arbeit musste.


*Hier mal der Code aus meine Main Class*


```
Public class Main extends Application {
    
    @Override
    public void start(Stage primaryStage) throws IOException {
        try {
            AnchorPane root = (AnchorPane)FXMLLoader.load(getClass().getResource("Sample.fxml"));
            Scene scene = new Scene(root);
            scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
            primaryStage.setScene(scene);
            primaryStage.setResizable(false);
            primaryStage.show();
            }
        catch(Exception e)
            {
            e.printStackTrace();
            }


        File file = new File("saldo.properties");
        if (file.exists() == true)
            {
            Properties props = new Properties();
            FileInputStream fis = new FileInputStream(file);
            props.load(fis);
            String saldo = props.getProperty("Saldo");
            FXMLLoader fxmlLoader=new FXMLLoader(getClass().getResource("Sample.fxml"));
            Parent root = fxmlLoader.load();
            SampleController meinController =(SampleController) fxmlLoader.getController();
            meinController.datenuebergabe(saldo);
            }        
    }
```

*Und das steht bis jetzt in meinen Controller:*



```
package Test_Prog;

import .......

public class SampleController implements Initializable{

    @FXML TextField text_eingabe;
        
    public void datenuebergabe(String s){
        text_eingabe.setText(s);
        System.out.println(s);
    } 
  
    
    public void initialize(URL url, ResourceBundle rb)
    {
    }
}
```


----------



## Daniel_84 (26. Jun 2015)

Hat sich erledigt!!

Ich lese jetzt im Controller unter 


```
public void initialize(URL url, ResourceBundle rb){

}
```

meine Datei ein und lasse sie in mein TextField schreiben.
:lol: man habe ich da wieder umständlich gedacht.



Also "Nothing for Ungood" und trotzdem vielen Dank.
Daniel


----------

