Wie bindet man zwei verschiedene JavaFx Eigenschaften: String und Double (mit StringConverter)?

8

Für dieses Stück Code (JavaFX).

%Vor%

Ich bekomme einen Kompilierungsfehler (in Eclipse IDE)

Dies ist die Methodensignatur:

%Vor%

Aber wenn ich die Parametrisierung (von StringConverter) entferne, bekomme ich nur Warnungen und Code funktioniert.

%Vor%

Ich versuche zu vermeiden, rohe Generika zu verwenden, damit ich Warnungen in meiner IDE nicht unterdrücken muss.

  

Die Frage ist also:
  Was ist das richtige Muster, um diesen Code zu schreiben?

    
TurboFx 30.01.2014, 07:32
quelle

1 Antwort

20

Dies ist wahrscheinlich eine kleine "Falle" in den JavaFX-Eigenschaften. Wenn Sie sich die Signatur genau ansehen:

%Vor%

Der Parameter des Konverters muss mit dem Parameter der Eigenschaft übereinstimmen. Aber (das surprize hier) DoubleProperty implementiert Property<Number> , also die fehlende Übereinstimmung in bindBidirectional . Zum Glück ist die Lösung einfach: Verwenden Sie NumberStringConverter :

%Vor%

Sie erhalten den zusätzlichen Vorteil, dass Sie das Konvertierungsformat angeben können.

    
Nikos Paraskevopoulos 30.01.2014 09:07
quelle

Tags und Links