Beim Füllen einer ListView mit benutzerdefinierten Objekten ist es wichtig zu steuern, wie diese Objekte angezeigt werden. Die einfache Übergabe der beobachtbaren Liste benutzerdefinierter Objekte an ListView funktioniert zwar, führt jedoch möglicherweise nicht zur gewünschten Darstellung.
Um die gewünschte Anzeige zu erreichen, sollten Sie Zellenfabriken nutzen. Mit diesem Ansatz können Sie anpassen, wie jede Zelle in der ListView dargestellt wird.
Ersetzen Sie die anfängliche ListView-Zeile durch Folgendes:
<code class="java">ListView<Word> listViewOfWords = new ListView<>(); listViewOfWords.setCellFactory(param -> new ListCell<Word>() { // Update the cell based on the provided item @Override protected void updateItem(Word item, boolean empty) { // Handle empty or null values for clean presentation if (empty || item == null || item.getWord() == null) { setText(null); } else { // Display the word string setText(item.getWord()); } } });</code>
Diese Zellfabrik greift auf die getWord()-Methode jedes Word-Objekts zu, um die entsprechende Zelle mit der Wortzeichenfolge zu füllen.
Während der Verwendung von toString() zum Festlegen des Zellinhalts möglicherweise genügen, eine eigene Zellfabrik bietet mehr Flexibilität. Sie können grafische Knoten über den Text hinaus integrieren, um die visuelle Darstellung der Zelle zu verbessern.
Berücksichtigen Sie die folgenden Optimierungen:
Das obige ist der detaillierte Inhalt vonWie kann ich die ListView-Zellenanzeige mit Cell Factories in JavaFX anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!