Membenarkan pengguna memilih sel bukan berterusan individu dalam JTable memberikan lebih fleksibiliti dan kemudahan pengguna. Begini cara anda boleh mencapainya:
Jika anda ingin mendayakan pemilihan sel tidak berterusan tanpa mengingati sel terakhir yang dipilih, hanya tahan kekunci CTRL sambil mengklik pada sel yang dikehendaki . Kaedah ini membenarkan pemilihan sel yang mudah dan terus tanpa mengubah suai kelakuan JTable lalai.
Sebagai alternatif, anda boleh melaksanakan ListSelectionModel tersuai yang menyokong pemilihan sel bukan berterusan. Ini perlu apabila anda memerlukan kawalan khusus ke atas proses pemilihan, seperti mengekalkan sel terpilih terakhir atau melaksanakan peraturan pemilihan tersuai.
Kod berikut menunjukkan penggunaan ListSelectionModel tersuai untuk pemilihan sel bukan berterusan dalam JTable:
import javax.swing.*; import javax.swing.event.*; import javax.swing.table.*; public class NonContinuousSelectionModel extends DefaultListSelectionModel { @Override public boolean isSelectedIndexSelected(int index) { boolean selected = super.isSelectedIndexSelected(index); if (selected) { return true; } int minIndex = getMinSelectionIndex(); int maxIndex = getMaxSelectionIndex(); if (minIndex == -1) { return false; } if (index < minIndex || index > maxIndex) { return false; } for (int i = minIndex; i <= maxIndex; i++) { if (i == index) { continue; } if (super.isSelectedIndexSelected(i)) { return false; } } return true; } }
Untuk menggunakan ListSelectionModel ini, anda boleh menetapkannya kepada JTable menggunakan kaedah setSelectionModel:
JTable table = new JTable(data, columnNames); table.setSelectionModel(new NonContinuousSelectionModel());
Pendekatan ini membolehkan penyesuaian dan kawalan yang lebih besar ke atas proses pemilihan sel , mendayakan senario pemilihan kompleks yang mungkin tidak disokong oleh kelakuan JTable lalai.
Atas ialah kandungan terperinci Bagaimana untuk mencapai pemilihan sel tidak berterusan dalam JTable?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!