Cara Membuat Aplikasi Autocomplete Dengan Dropdown Java - Dorpdown adalah sebuatan lain dari combobox, jika kita sebelumnya sudah pernah melakukan autocomplete pada text field yang hasil resultya langsung muncul pada karakter selanjutnya, pada kali ini kita melakukannya pada combobox yang hasil resultnya muncul dalam bentuk dropdown sehingga memudahkan kita, dan juga kita dapat memilih dan melihat resultnya dengan mudah karna muncul pada bagian bawah kata yang kita ketikan.
Hal ini seperti yang terdapat di dalam sistem pencarian search engine google ketika setiap kita ingin mencari langsung muncul sugest kata yang kita cari pada bagian bawahnya shingga memudahkan kita dalama mencari. untuk lebih jelasnya langsung saja ke contoh programnya.
1. Buka NetBeans anda kemudian buatlah sebuah project Java Aplication dengan cara klik File > New Project > Java > Java Aplication.
2. Ubah nama project menjadi AutocompleteComboboxApp.
3. Sekarang buatlah sebuah class baru dengan cara klik kanan pada project anda > New > Java Class
4. Berinama class tersebut JComboboxListener. kemudian masukan script berikut :
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package autocompletecomboboxapp;
import java.awt.EventQueue;
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;
/**
*
* @author Jin Toples
*/
public class JComboboxListener extends KeyAdapter {
JComboBox comboBox;
Vector list;
public JComboboxListener(JComboBox comboBox, Vector list){
this.comboBox = comboBox;
this.list = list;
}
@Override
public void keyTyped(final KeyEvent e){
EventQueue.invokeLater(new Runnable(){
@SuppressWarnings("unchecked")
@Override
public void run(){
String text = ((JTextField)e.getSource()).getText();
comboBox.setModel(new DefaultComboBoxModel(getFilteredList(text)));
comboBox.setSelectedIndex(-1);
((JTextField) comboBox.getEditor().getEditorComponent()).setText(text);
comboBox.showPopup();
}
});
}
public Vector getFilteredList(String text){
Vector listResult = new Vector();
for(int i=0; i < list.size(); i++){
if(list.get(i).toString().startsWith(text)){
listResult.add(list.get(i).toString());
}
}
return listResult;
}
}
Penjelasan :
Perhatikan pada method keyTyped(). Setiap kali kita mengetikan sebuah karakter di dalam ComboBox, maka akan tampil popup yang berisi list kata yang kita telah definisikan yang cocok dengan karakter tersebut.
5. Sekarang buatlah sebuah class baru dengan cara klik kanan pada project anda > New > Java Class
6. Berinama class tersebut FormUtama. kemudian masukan script berikut :
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package autocompletecomboboxapp;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.util.Vector;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JTextField;
/**
*
* @author Jin Toples
*/
public class FormUtama extends JFrame {
String[] anime = {"Another","Angel Beats","Baka To Test", "Clanad","DXD", "Eroge H","Fairy Tail","Gulity Crown","Hataraku Mao-Sama","Infinite Stratos","Korewa Zombie Desuka","Magi","Naruto","One Piece","Princes Lover","Sakurasou","To Love Ru","Unbreakable Machine Doll","Yosuga No Sora","Zero No Tsukaima"};
Vector listAnime = new Vector();
JComboBox comboBox;
public FormUtama(){
super("Combobox Auto Complete Filter List");
initComponents();
}
public void initComponents(){
setVectorAnime();
comboBox = new JComboBox();
comboBox.setModel(new DefaultComboBoxModel(listAnime));
comboBox.setSelectedIndex(-1);
comboBox.setEditable(true);
JTextField textField = (JTextField) comboBox.getEditor().getEditorComponent();
textField.setFocusable(true);
textField.setText("");
textField.addKeyListener(new JComboboxListener(comboBox, listAnime));
getContentPane().add(comboBox, BorderLayout.NORTH);
setPreferredSize(new Dimension(300, 200));
pack();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void setVectorAnime(){
for(int i=0; i < anime.length; i++){
listAnime.add(anime[i]);
}
}
}
7. Sekarang buka file AutocompleteCombobox.java. kemudian ketikan script berikut :
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package autocompletecomboboxapp;
/**
*
* @author Jin Toples
*/
public class AutocompleteComboboxApp {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new FormUtama();
}
}
Untuk mencobanya anda dapat jalannya program anda dengan cara tekan F6 pada keyboard atau klik Run > Run Poject. atau klik kanan pada file RunningTextApp klin Run File. coba anda ketikan sebuah karakter dalam aplikasi tersebut maka beberapa sugestion akan muncul, Aplikasi ini case sensitive jadi huruf besar dan kecil dibedakan, nah tugas anda selanjutnya adalah membuatnya menjadi tidak case sensitif.
Aplikasi Autocomplete Dengan Dropdown Java sekarang sudah selesai, baca juga tutorial membuat aplikasi java lainnya.
Aplikasi Autocomplete Dengan Dropdown Java sekarang sudah selesai, baca juga tutorial membuat aplikasi java lainnya.