Rumah >Java >javaTutorial >Mengapa Baris JTable Saya Mendua, dan Bagaimana Saya Boleh Membetulkannya Menggunakan `fireTableStructureChanged()`?

Mengapa Baris JTable Saya Mendua, dan Bagaimana Saya Boleh Membetulkannya Menggunakan `fireTableStructureChanged()`?

Susan Sarandon
Susan Sarandonasal
2024-12-22 10:05:46758semak imbas

Why Are My JTable Rows Duplicating, and How Can I Fix It Using `fireTableStructureChanged()`?

Pendua Baris JTable: Menangani Punca Punca

Dalam kes ini, isu dengan nilai pendua dalam baris JTable berpunca daripada pelaksanaan yang salah kaedah fireTableDataChanged() dalam adat CollectionDataModel.

Pelaksanaan yang betul fireTableDataChanged()

Kaedah fireTableDataChanged() harus memberitahu JTable bahawa data asas telah berubah, mencetuskan kemas kini paparan jadual. Dalam coretan kod yang disediakan, kaedah itu nampaknya tidak dilaksanakan.

Untuk melaksanakannya dengan betul, tambahkan kod berikut pada penghujung kaedah populate():

fireTableStructureChanged();

Penjelasan

Kaedah fireTableStructureChanged() menunjukkan bahawa struktur data, seperti bilangan lajur atau baris, telah berubah. Ini mencetuskan jadual untuk membina semula lajur dan barisnya dengan betul.

Kod Contoh

Berikut ialah kod yang diperbetulkan dengan kaedah fireTableStructureChanged() dilaksanakan:

public void populate(Collection c) {
    data.clear();
    for(Item i : c.getItems()) {
        ArrayList<String> row = new ArrayList<String>();
        for(Property p : i.getProperties().values()) {
            row.add(p.toString());
        }
        data.add(row);
    }
    fireTableStructureChanged();
}

Dengan melaksanakan kaedah fireTableStructureChanged() dengan betul, jadual akan dikemas kini dengan betul apabila data baharu diisi, menghalang penampilan baris pendua.

Atas ialah kandungan terperinci Mengapa Baris JTable Saya Mendua, dan Bagaimana Saya Boleh Membetulkannya Menggunakan `fireTableStructureChanged()`?. 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