Rumah > Java > javaTutorial > teks badan

Bagaimana untuk Memaparkan Objek Tersuai dalam Paparan Senarai JavaFX?

Patricia Arquette
Lepaskan: 2024-10-24 18:47:55
asal
402 orang telah melayarinya

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());
        }
    }
}
Salin selepas log masuk

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());
Salin selepas log masuk

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);
    }
}
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!