JavaFX: Binden StringProperty mit konstanter string prefix

Ich habe eine Frage zu den bind-Funktionen in JavaFX. Was ich will ist zum binden 2 string-Eigenschaften. Aber Ihre Werte sollten nicht gleich sein.

Machen wir mal ein Beispiel:

Ich habe eine StringProperty mit stellt die zuletzt geöffneten Projekt in meiner Anwendung.

Der Wert ist wie "C:\temp\myProject.prj".

Ich möchte zeigen, diesen Weg in den Titel meines Fensters.

Es ist ganz einfach: stage.titleProperty().bind(lastprojectProperty());

Aber ich will nicht zu zeigen, nur die Projekt-Pfad sondern auch den Namen der Anwendung,

z.B.:
MyApplication 2.2.4 - C:\temp\myProject.prj.

Ist es möglich, die Bindung und das hinzufügen einer Konstanten prefix-Zeichenfolge? Oder muss ich eine ChangeListerner?

Die Lösung mit dem ChangeListener hat das problem mit dem initial-Werte,...

    final StringProperty path = new SimpleStringProperty("untitled");
    final StringProperty title = new SimpleStringProperty("App 2.0.0");

    path.addListener(new ChangeListener<String>()
  {
        @Override
        public void changed(ObservableValue<? extends String> ov, String t, String newValue)   
        {
            title.setValue("App 2.0.0 - " + newValue);
        }
  });                

    //My title shows "App 2.0.0" since there is now change event throws until now...
    //Of course I could call path.setValue("untitled"); 
    //And above path = new SimpleStringProperty("");
    System.out.println(title.getValue());

    //Now the title is correct: "App 2.0.0 - C:\temp\myProject.prj"
    path.setValue("C:\\temp\\myProject.prj");
    System.out.println(title.getValue());
InformationsquelleAutor a3po2.0 | 2013-06-25
Schreibe einen Kommentar