by Abu Zubayr

Cara Membuat Autocomplete di Java

cara membuat autocomplete di java
Saat membuka sebuah halaman website atau aplikasi tertentu, kita pernah menemukan sebuah inputan text yang apabila di ketik satu dua angka atau huruf, akan secara otomatis memunculkan opsi-opsi pilihan item yang ada. Fitur semacam ini seringkali kita temukan pada mesin pencari seperti google, bing, yahoo ataupun yang lainnya. Apakah anda mengetahui nama fitur tersebut ? Nah nama fitur itu adalah autocomplete.

Fitur autocomplete ini bertujuan untuk memudahkan pengguna aplikasi dalam penginputan data. Sebagai contoh pada proses penginputan nilai mahasiswa misalnya yang dilakukan oleh operator. Jika dilakukan tanpa bantuan fitur autocomplete tentu akan memakan waktu yang agak lama, karena si operator harus menginput seluruh nim mahasiswa tersebut. Hal ini tentu akan berbeda jika sudah memanfaatkan fitur autocomplete. Pada saat menulis nim “1101” saja misalnya, maka akan muncul seluruh nim-nim yang berawalan “1101”, dan tinggal memilihnya saja.

Pada tutorial ini kita akan belajar cara membuat autocomplete tersebut pada aplikasi java. Item yang akan kita masukkan pada autocomplete adalah nama orang saja. Selanjutnya data-data itu bisa anda ubah sesuai dengan keinginan anda. Ataupun bisa mengambilnya secara langsung melalui database.

Berikut adalah langkah-langkahnya.
  1. Buat sebuah kelas dengan nama AutoComplete, dan masukkan kode dibawah ini pada kelas tersebut.
    AutoComplete.java
    
    import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;
    import java.util.Vector;
    import javax.swing.DefaultComboBoxModel;
    import javax.swing.JComboBox;
    import javax.swing.JTextField;
    
    public class AutoComplete extends JComboBox <object>{
        String[] keyWord = null;
        Vector vec = new Vector();
        
        public AutoComplete(String[] keyWord){
            this.keyWord = keyWord;
            setModel(new DefaultComboBoxModel<>(vec));
            setSelectedIndex(-1);
            setEditable(true);
            JTextField text = (JTextField)getEditor().getEditorComponent();
            text.setFocusable(true);
            text.setText("");
            text.addKeyListener(new ComboListener(this, vec));
            setMyVector();
            setSelectedIndex(0);
        }
        
        private void setMyVector() {
            int a;
            for (a = 0; a < keyWord.length; a++) {
                vec.add(keyWord[a]);
            }
        }
    }
    
    class ComboListener extends KeyAdapter{
        JComboBox cblistener;
        Vector vec;
    
        public ComboListener(JComboBox cblistener, Vector vec){
            this.cblistener = cblistener;
            this.vec = vec;
        }
        
        @Override
        public void keyReleased(KeyEvent e){
            String text = ((JTextField)e.getSource()).getText();
            cblistener.setModel(new DefaultComboBoxModel(getFilteredList(text)));
            cblistener.setSelectedIndex(-1);
            ((JTextField)cblistener.getEditor().getEditorComponent()).setText(text);
            cblistener.showPopup();
        }
    
        public Vector getFilteredList(String text){
            Vector v = new Vector();
            for(int i = 0; i < vec.size(); i++){
                if(vec.get(i).toString().startsWith(text))
                    v.add(vec.get(i).toString());
                else if(vec.get(i).toString().startsWith(text.toLowerCase()))
                    v.add(vec.get(i).toString());
                else if(vec.get(i).toString().startsWith(text.toUpperCase()))
                    v.add(vec.get(i).toString());
            }
            return v;
        }    
    }
        

  2. Lalu buat sebuah form dan desain seperti gambar dibawah ini.
    form combo box pilih nama


    * Item yang ditambahkan tersebut adalah komponen JComboBox.

  3. Sekarang buka tab source dari form yang anda buat, lalu buat sebuah array untuk menampung item combo box diatas. Contohnya sebagai berikut :
    array nama


    Data-data pada array tersebut bisa anda ganti dengan data yang lain, misalnya nim, negara atau yang lainnya.

  4. Kembali ke tab Design, dan edit kode tersebut dengan cara klik kanan pada komponen combo box lalu pilih “Customized Code”.
    customized code


  5. Ubah default code yang paling atas menjadi custom creation.
    custom creation


  6. Ganti new javax.swing.JComboBox(); menjadi new AutoComplete(nama); lalu tekan tombol OK.
    perubahan kelas combo box menjadi autocomplete


  7. Agar tidak mengganggu hapus saja item yang sudah terisi sebelumnya pada combo box.
    hapus item combo box


    combo box setelah dihapus item lama


  8. Selesai, jalankan aplikasi anda.

Project pembuatan aplikasi ini bisa anda unduh langsung disini adf.ly/1fWBpQ
Demikianlah tutorial Cara Membuat Autocomplete di Java. Semoga ada manfaatnya bagi anda dan saya.
Jika ada yang belum dipahami silahkan bertanya di form komentar dibawah. Jika ingin meng-update secara rutin artikel yang kami posting dari blog ini, silahkan isi email pada Follow by Email dibawah.

Terima Kasih … Wassalam
loading...
Share:

0 Comments:

Post a Comment

DigitalOcean Referral Badge
www.domainesia.com
Powered by Blogger.