Rumah >Java >javaTutorial >Mengapa Baris JTable Saya Mendua, dan Bagaimana Saya Boleh Membetulkannya Menggunakan `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!