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.
- 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; } }
- Lalu buat sebuah form dan desain seperti gambar dibawah ini.
* Item yang ditambahkan tersebut adalah komponen JComboBox.
- Sekarang buka tab source dari form yang anda buat, lalu buat sebuah array untuk menampung item combo box diatas. Contohnya sebagai berikut :
Data-data pada array tersebut bisa anda ganti dengan data yang lain, misalnya nim, negara atau yang lainnya.
- Kembali ke tab Design, dan edit kode tersebut dengan cara klik kanan pada komponen combo box lalu pilih “Customized Code”.
- Ubah default code yang paling atas menjadi custom creation.
- Ganti new javax.swing.JComboBox(); menjadi new AutoComplete(nama); lalu tekan tombol OK.
- Agar tidak mengganggu hapus saja item yang sudah terisi sebelumnya pada combo box.
- 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...
0 Comments:
Post a Comment