package semestre; import javax.swing.*; import java.awt.*; import javax.swing.event.*; import java.awt.event.*; public class Autocompletar extends JComboBox{ //Array a usar. String [] Last = {"Lapiz","Regla","Lampara","Remache","Pluma","Pincel","Plumon","Pizarron","Pintarron","Lamina"}; //Escuchador para KeyPressed asociada al JTextField dentro del JComboBox KeyListener listener = new KeyListener() { public void keyTyped(KeyEvent keyEvent) { } public void keyPressed(KeyEvent keyEvent) { } public void keyReleased(KeyEvent keyEvent) { Metodo(); }}; //Constructor public Autocompletar(){ this.setEditable(true); Component Inicializador = this.getEditor().getEditorComponent(); Inicializador.addKeyListener(listener); } //Metodo que trabaja al JComboBox public void Metodo(){ JTextField tf = (JTextField) this.getEditor().getEditorComponent(); this.setSelectedItem(tf.getText()); glorioso(tf.getText(),Last); this.setPopupVisible(false); this.setPopupVisible(true); } //Metodo para limpiar el combo y solo dejar las palabras que coincidan dentro del array que se envia. public void glorioso (String Word, String[] Array){ while (this.getItemCount()!=0) this.removeItemAt(0); if (Word.length()!=0) for (int i=0;i<=Array.length-1;i++){ if (poderoso(Array[i],Word)) this.addItem(Array[i]); } } //Metodo para comparar una palabra con la otra. public boolean poderoso(String Check, String Target){ for (int i=0;i<=Target.length()-1;i++){ try { if (Check.charAt(i)!=Target.charAt(i)) return false; } catch (Exception r) { System.out.println("Error al comparar"); return false; } } return true; } }