Rumah >Java >javaTutorial >Bagaimana untuk Memaparkan Objek Tersuai dalam Paparan Senarai JavaFX?
Apabila bekerja dengan JavaFX, mengisi ListView dengan objek tersuai memerlukan pendekatan yang sedikit berbeza berbanding menggunakan Strings. Artikel ini akan menyediakan penyelesaian terperinci untuk isu ini.
Apabila menggunakan ObservableArrayList objek tersuai dalam JavaFX, ListView memaparkan objek itu sendiri sebagai Strings, bukannya mengekstrak dan memaparkan sifat yang diingini (cth., perkataan daripada objek Word).
Penyelesaiannya ialah menggunakan Kilang Sel dalam ListView. Kilang Sel membolehkan anda menyesuaikan pembentangan setiap sel dalam ListView.
Langkah 1: Cipta Kilang Sel
Buat kelas baharu yang memanjangkan ListCell. Dalam contoh ini, kami akan memanggilnya WordCell.
public class WordCell extends ListCell<Word> { @Override protected void updateItem(Word item, boolean empty) { super.updateItem(item, empty); if (empty || item == null || item.getWord() == null) { setText(null); } else { setText(item.getWord()); } } }
Langkah 2: Tetapkan Kilang Sel dalam ListView
Tetapkan kelas WordCell sebagai kilang sel untuk the ListView.
ListView<Word> listViewOfWords = new ListView<>(wordsList); listViewOfWords.setCellFactory(listViewOfWords.new WordCell());
Berikut ialah contoh aplikasi yang menunjukkan pendekatan yang diterangkan:
import javafx.application.Application; import javafx.collections.*; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.stage.Stage; public class ListViewCustomObject extends Application { @Override public void start(Stage stage) { ObservableList<Word> wordsList = FXCollections.observableArrayList(); wordsList.add(new Word("First Word", "Definition of First Word")); wordsList.add(new Word("Second Word", "Definition of Second Word")); wordsList.add(new Word("Third Word", "Definition of Third Word")); ListView<Word> listViewOfWords = new ListView<>(wordsList); listViewOfWords.setCellFactory(listViewOfWords.new WordCell()); stage.setScene(new Scene(listViewOfWords)); stage.show(); } public static class Word { private final String word; private final String definition; public Word(String word, String definition) { this.word = word; this.definition = definition; } public String getWord() { return word; } public String getDefinition() { return definition; } } public static void main(String[] args) { launch(args); } }
Dengan mengikuti langkah ini, anda boleh mengisi ListView anda dengan objek tersuai dan paparkan sifat yang diingini dalam setiap sel.
Atas ialah kandungan terperinci Bagaimana untuk Memaparkan Objek Tersuai dalam Paparan Senarai JavaFX?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!