Rumah >Java >javaTutorial >Mengapa JTable Saya Menunjukkan Baris Pendua Apabila Data Dasarnya Betul?
Nilai pendua JTable dalam baris: Menyelesaikan misteri
Sebagai tindak balas kepada kebimbangan tentang nilai pendua yang nampaknya mengisi JTable, penyiasatan terperinci telah mendedahkan bahawa model data asas memang memegang data yang betul. Untuk memahami punca, mari kita mendalami kod yang disediakan.
Setelah memanggil kaedah populate() dalam CollectionDataModel tersuai, data dijangka akan dipaparkan dalam jadual. Walau bagaimanapun, isu ini timbul apabila data dikosongkan sebelum mengisinya. Ini dilakukan melalui data baris.clear().
Untuk menggambarkan perkara ini dengan lebih lanjut, mari kita pertimbangkan contoh senario. Katakan model data pada mulanya mengandungi dua baris, dengan setiap baris mempunyai tiga lajur. Setelah memanggil populate(), data ini dikosongkan, meninggalkan jadual kosong. Kini, apabila koleksi baharu diulang, hanya data daripada item terakhir dalam koleksi ditunjukkan dalam jadual. Ini berlaku kerana medan data dalam model data hanya mengekalkan baris terakhir data.
Akibatnya, setiap baris dalam JTable memaparkan data yang sama, memberikan ilusi nilai pendua. Untuk menyelesaikan masalah ini, seseorang boleh mengubah suai kaedah populate() untuk melangkau langkah pembersihan data, dengan itu mengekalkan data sedia ada dan menambahkan data baharu pada penghujung jadual.
Sebagai alternatif, jika penting untuk mengosongkan data sebelum mengisi, seseorang boleh mempertimbangkan untuk mencipta ArrayList baharu dan memberikannya kepada medan data dan bukannya mengosongkan medan data sedia ada. Dengan cara ini, data yang betul akan dikekalkan tanpa menyebabkan isu nilai pendua dalam JTable.
Atas ialah kandungan terperinci Mengapa JTable Saya Menunjukkan Baris Pendua Apabila Data Dasarnya Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!