使用自訂物件填充 ListView 時,控制這些物件的顯示方式至關重要。雖然簡單地將可觀察的自訂物件清單傳遞給 ListView 就可以了,但它可能不會產生所需的呈現效果。
要實現所需的顯示,請考慮利用單元工廠。這種方法可讓您自訂 ListView 中每個儲存格的呈現方式。
將初始ListView 行替換為以下內容:
<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>
此單元格工廠存取每個Word 物件的getWord()方法,以使用單字字串填充相應的單元格。
使用 toString() 設定單元格內容可能就足夠了,專門的細胞工廠提供了更大的靈活性。您可以合併文字以外的圖形節點,以增強單元格的視覺表示。
考慮以下最佳化:
以上是如何在 JavaFX 中使用單元工廠自訂 ListView 單元顯示?的詳細內容。更多資訊請關注PHP中文網其他相關文章!