Selection model dari obyek kelas JList harus mengimplementasikan interface ListSelectionModel yang mendefinisikan tiga konstanta untuk mode seleksi yaitu konstanta SINGLE_INTERVAL_SELECTION, MULTIPLE_INTERVAL_SELECTION dan SINGLE_SELECTION, metoda registrasi untuk ListSelectionListener serta mutator dan accessor untuk beberapa data field.
Secara default, kelas JList menggunakan DefaultListSelectionModel yang merupakan implementasi konkrit dari interface ListSelectionModel. Selection model jarang digunakan secara tegas karena mode pemilihan dapat langsung ditentukan di JList dengan metoda setSelectionMode.
Anda dapat memberi argumen untuk parameter metoda setSelectonMode dengan salah satu konstanta tipe int SINGLE_SELECTION, SINGLE_INTERVAL_ SELECTION dan MULTIPLE_INTERVAL_SELECTION. Mode pemilihan default untuk kelas JList adalah MULTIPLE_INTERVAL_SELECTION. Karena ketiga konstanta didefinisikan di interfes ListSelectionModel, Anda perlu menyertakan nama interfesnya ketika menggunakan konstanta tersebut seperti penggalan kode program di bawah ini.
1 2 | JList list = new JList(new String[] {"Buku 1", "Buku 2", "Buku 3", "Buku 4", "Buku 5", "Buku 6", "Buku 7", "Buku 8"}); list.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION); |
Gambar di atas adalah hasil memberi argumen berbeda berupa konstanta int ke metoda setSelectionMode. (a) menggunakan konstanta SINGLE_SELECTION yang membolehkan pemilihan satu elemen. (b) menggunakan konstanta SINGLE_INTERVAL_SELECTION yang membolehkan pemilihan banyak elemen dengan syarat harus bersebelahan (contiguous). Anda perlu menekan dan menahan tombol keyboard SHIFT untuk mode ini. (c) menggunakan konstanta MULTIPLE_INTERVAL_SELECTION dimana pemilihan elemen dapat dilakukan tanpa ada batasan sama sekali (restriction).