Rumah >Java >javaTutorial >Bagaimana untuk Memaparkan Objek Tersuai dalam Paparan Senarai JavaFX?

Bagaimana untuk Memaparkan Objek Tersuai dalam Paparan Senarai JavaFX?

Patricia Arquette
Patricia Arquetteasal
2024-10-24 18:47:55529semak imbas

How to Display Custom Objects in a JavaFX ListView?

Mengisi ListView dengan Objek Tersuai dalam 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.

Pernyataan Masalah

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).

Penyelesaian

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());

Aplikasi Contoh

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn