Meine Frage ist, wie man in JavaFX eine neue Tabelle mit dem Index der tableRow in der ersten Spalte erstellt.
Also habe ich eine Klasse erstellt: NrCellFactory.
%Vor%und dann setze ich meine Spalte wo die Zahlen angezeigt werden sollen:
%Vor%Wenn ich das Projekt lade, hat nrCol keine Daten ...
Kann jemand das Problem lösen?
Danke
Beispiellösung
Hier ist eine Lösung, die eine Zellenfabrik verwendet:
%Vor%Einfache alternative Lösung
Und ein einfacheres Beispiel, das eine Zellenwertfactory und keine Zellenfactory für den Normalfall verwendet, in dem alle Elemente in der Hintergrunddatenliste für die Tabelle eindeutig sind und ihr Index über table.getItems().indexOf(p.getValue())
:
Warum ist Ihr Versuch fehlgeschlagen?
Ich konnte nicht genau sagen, warum Ihr Versuch fehlschlug, da ich nicht glaube, dass in Ihrer Frage genügend Code vorhanden ist, um den Fehler genau zu diagnostizieren. Meine Vermutung ist, dass Sie keine Zellwertfactory für die Zeile zur Verfügung gestellt haben und dass auch der Text im Konstruktor der Zelle gesetzt wurde, anstatt dass ein updateItem
-Aufruf dazu führte, dass er nicht funktionierte.
Ausführbares Beispiel
Hier ist ein ausführbares Beispiel:
%Vor%
Dies ist eine universelle (generische) Zellenfabrik, die Sie einfach überall verwenden können:
%Vor% Verwendung: colRowNum.setCellFactory(new LineNumbersCellFactory());
Löschen Sie +1, wenn Sie 0-indizierte Zeilen benötigen.
EDIT: Hinzugefügt else
Block beim Löschen von Elementen
Ein einfacher Ansatz, der nicht von indexOf(item)
oder von updateItem()
abhängt (was das einzige Ereignis sein kann oder nicht, das Sie hören müssten), ist, die Text-Eigenschaft von TableCell
an seine zu binden Zeilenindex:
Wenn es Ihnen egal ist, ob Zeilen Daten enthalten oder nicht, können Sie rowIndex < ...size()
check entfernen: