Zellenfabrik in javafx

8

Ich verwende JavaFx 2.0 und Java 7. Die Frage bezieht sich auf die Tabellenansicht in JavaFX.

Der folgende Beispielcode erstellt eine firstName-Spalte und weist ihr die Zellenfactory und die Zellenwertfactory zu.

%Vor%

Meine Anforderung ist, dass ich eine Spalte habe, die nicht direkt einem einzelnen Attribut im Person-Objekt zugeordnet ist, sondern stattdessen ein benutzerdefinierter Wert, der durch Verketten eines oder mehrerer Attribute des Person-Objekts erstellt wird.

Stellen Sie sich ein Szenario vor, in dem ich eine Tabellenspalte mit dem Namen Vollständiger Name habe, die die Werte Präfix + Nachname + "," + Vorname haben wird.

1) Wie schreiben Sie in diesem Szenario die Zellenwertfactory?

%Vor%

2) Wie schreiben Sie Zellfabrik?

In diesem Szenario müssen wir sowohl die Zellenwertfabrik als auch die Zellenfabrik implementieren, oder eine davon ist ausreichend? Wenn einer ausreicht, welcher?

Danke

    
user1332356 09.05.2012, 15:47
quelle

2 Antworten

24

Einfach gesagt,

Cell Value Factory : Es ist wie ein "toString ()" von nur einem Teil des Zeilenelements für diese verwandte Zelle.
Cell Factory : Es handelt sich um einen Renderer der Zelle aus dem Zellenelement. Das Standardverhalten ist setText (cell.item.toString ()), wenn das Zellenelement kein Node , setGraphic ((Node) cell.item) ist. Setzen Sie diese Eigenschaft, wenn die Zelle die Bearbeitung unterstützen soll ODER wenn Sie mehr Grafiken (Steuerelemente) als standardmäßig Label möchten.

Für Ihr Szenario ist es ausreichend, die Zellenfabrik mit dem Standardwert zu verlassen (2). Und hier ist Beispielcode für (1):

%Vor%     
Uluk Biy 10.05.2012 10:26
quelle
7

Sie können auch die Getter-Methode Ihres Datenobjekts ändern. In Ihrem Fall ist dies die Klasse Person, die firstName, lastName und (vermutlich) ein Präfix enthält.

Fügen Sie der Person-Klasse eine neue Methode hinzu:

%Vor%

und wenden Sie dann einfach die CellValueFactory an:

%Vor%

Ich finde das bequemer und als Rückrufe zu verwenden.

    
Peter Ilfrich 08.08.2012 12:17
quelle

Tags und Links