Cara Mendayakan Pemilihan Sel Tidak Berterusan dalam JTable
Dalam pelaksanaan JTable standard, pengguna hanya boleh memilih kumpulan sel bersebelahan. Walau bagaimanapun, terdapat cara untuk menyesuaikan tingkah laku ini untuk membolehkan pemilihan sel individu dan tidak berterusan.
Kaedah 1: Menggunakan Pengubahsuai CTRL
Jika mod pemilihan JTable ditetapkan kepada ListSelectionModel.SINGLE_SELECTION, menahan kekunci CTRL sambil mengklik pada sel tidak berterusan akan memilihnya secara individu.
Kaedah 2: Mengatasi Kaedah processMouseEvent
Untuk lebih kawalan ke atas tingkah laku pemilihan, anda boleh mengatasi kaedah processMouseEvent subkelas JTable. Dalam kaedah yang diganti, anda boleh mengubah suai pengubah untuk meyakinkan JTable bahawa kekunci CTRL dimatikan semasa memproses acara tetikus.
Berikut ialah contoh coretan kod:
public class Ctrl_Down_JTable extends JTable { private static final long serialVersionUID = 1L; @Override protected void processMouseEvent(MouseEvent e) { int modifiers = e.getModifiers() | InputEvent.CTRL_MASK; int modifiersEx = e.getModifiersEx() | InputEvent.CTRL_MASK; MouseEvent myME = new MouseEvent((Component) e.getSource(), e.getID(), e.getWhen(), modifiers, e.getX(), e.getY(), e.getXOnScreen(), e.getYOnScreen(), e.getClickCount(), e.isPopupTrigger(), e.getButton()); super.processMouseEvent(myME); } }
Kaedah 3: Menggunakan Custom ListSelectionModel
Pilihan lain ialah mencipta ListSelectionModel tersuai yang menyokong pemilihan sel bukan berterusan. Ini melibatkan melanjutkan kelas DefaultListSelectionModel dan mengatasi kaedah khusus untuk melaksanakan kefungsian yang diingini.
Nota:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendayakan Pemilihan Sel Tidak Berterusan dalam JTable?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!