Jcheckbox Pada Jlist (Java Swing)

Hmmm, dah usang gak maen Swing Hack, di blog sebelumnya aneka macam tutorial perihal swing Hack, swing Makeover, dll.

Untuk itu kali ini aku ingin membuatkan beberapa tips, mengubah komponen pada java. Mungkin anda tidak abnormal dengan tampilan ini:


Yup, tampilan ini biasanya terdapat dalam poling yang memungkinkan kita untuk menentukan l;ebih dari satu pilihan. Kaprikornus tertarik neh, sanggup gak ya java bikin komponen kayak gini? Tentu saja, apa sih yang gak sanggup hehe. Pis ah. Oke kali ini aku akan sedikit mengungkap rahasianya.
Pertama, untuk menciptakan komponen menyerupai ini dijava, kita memerlukan tiga komponen swing:
1. JList
2. JCheckBox
3. JscrolPane


Prinsipnya, kita akan memakai JCheckBox pada Jlist, kemudian kemudian JList ditampilkan didalam JScrollPane. Emang sanggup JCheckBox dipake didalam Jlist? Bisa, caranya dengan menambahkan CellRenderer yang sudah kita ubah sesuai dengan keperluan. Untuk perkara ini kita akan merubah CellRenderer untuk JList dengan menambahkan JCheckBox kedalam JList.
Okelah, cukup sekian basa-basinya, kebanyakan basa bau malah pusing hehe. Langsung aja.
Pertama, Siapkan peralatan tempurnya hehe
  • Seperangkat komputer
  • Java JDK dan Netbeans (Versi terserah selera hehe)
Langkah kedua, buat project, kasih nama terserah anda, kemudian buat class kasih nama saja CheckBoxList, kemudian masukan isyarat berikut:

/*  * CheckBoxList demo  *   * Tutorial dibentuk  oleh javadanphp.blogspot.com  * anda sanggup  memakai class-class yang ada pada tutorial ini tanpa  * menghilangkan  copyright ini  *   * anda dapt  memakai class tanpa jaminan dari javadanphp.blogspot.com  * akan kerusakan yang  mungkin ditimbulkan oleh tutorial ini  *   * Salam  *  javadanphp.blogspot.com  *   */ package javaapplication1;  import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.util.HashSet; import java.util.Iterator; import javax.swing.DefaultListCellRenderer; import javax.swing.JCheckBox; import javax.swing.JComponent; import javax.swing.JList; import javax.swing.ListCellRenderer; import javax.swing.UIDefaults; import javax.swing.UIManager; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener;  /**  *  * @author Kang Opik  */ public class CheckBoxList extends JList implements ListSelectionListener {      private Color listForeground, listBackground;     HashSet pilihan = new HashSet();     int toggleIndex = -1;     boolean toggleWasSelected;      public CheckBoxList() {         super();         getSelectedColor();         setCellRenderer(new CheckBoxListRenderer());         addListSelectionListener(this);     }      private void getSelectedColor() {         UIDefaults uid = UIManager.getLookAndFeel().getDefaults();         listForeground = uid.getColor("List.foreground");         listBackground = uid.getColor("List.background");     }      @Override     public void valueChanged(ListSelectionEvent e) {         if (!e.getValueIsAdjusting()) {             removeListSelectionListener(this);              // cek  apakah di-check atau sebaliknya             HashSet newSelections = new HashSet();             int size = getModel().getSize();             for (int i = 0; i < size; i++) {                 if (getSelectionModel().isSelectedIndex(i)) {                     newSelections.add(new Integer(i));                 }             }              //men-chech yang sebelumnya dipilih             Iterator it = pilihan.iterator();             while (it.hasNext()) {                 int index = ((Integer) it.next()).intValue();                 getSelectionModel().addSelectionInterval(index, index);             }              it = newSelections.iterator();             while (it.hasNext()) {                 Integer nextInt = (Integer) it.next();                 int index = nextInt.intValue();                 if (pilihan.contains(nextInt)) {                     getSelectionModel().removeSelectionInterval(index, index);                 } else {                     getSelectionModel().addSelectionInterval(index, index);                 }             }              // ingat  pilihan yang telah dipilih             pilihan.clear();             for (int i = 0; i < size; i++) {                 if (getSelectionModel().isSelectedIndex(i)) {                     pilihan.add(new Integer(i));                 }             }              addListSelectionListener(this);         }     }      class CheckBoxListRenderer extends JComponent implements ListCellRenderer {          DefaultListCellRenderer defaultCellCellRenderer;         JCheckBox checkbox;          public CheckBoxListRenderer() {             setLayout(new BorderLayout());             defaultCellCellRenderer = new DefaultListCellRenderer();             checkbox = new JCheckBox();             add(checkbox, BorderLayout.WEST);             add(defaultCellCellRenderer, BorderLayout.CENTER);         }          @Override         public Component getListCellRendererComponent(                 JList list,                 Object value,                 int index,                 boolean isSelected,                 boolean cellHasFocus) {             defaultCellCellRenderer.getListCellRendererComponent(                     list,                     value,                     index,                     isSelected,                     cellHasFocus);             checkbox.setSelected(isSelected);             Component[] comps = getComponents();             for (int i = 0; i < comps.length; i++) {                 comps[i].setForeground(listForeground);                 comps[i].setBackground(listBackground);             }             return this;         }     } } 
Lho Koq? Yaaa, emang selesai, sudah beres, gak percaya? Coba buat JFrame, trus Drag class yang tadi sudah kita buat.

Iya kan selesai, tapi jangan lupa pastikan ubah property selectionModenya jadi MULTIPLE_INTERVAL


Berikut Source code lengkapnya, silahkan otak atik kodenya:
Source Code (4Shared.com)
Neh screenshootnya



Oke, sekian dulu tutorial kali ini, kalo ada yang kurang terperinci silahkan komentar.

Belum ada Komentar untuk "Jcheckbox Pada Jlist (Java Swing)"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel