elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [APORTE] Autocompler en un JComboBox
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [APORTE] Autocompler en un JComboBox  (Leído 6,362 veces)
AFelipeTrujillo

Desconectado Desconectado

Mensajes: 160



Ver Perfil WWW
[APORTE] Autocompler en un JComboBox
« en: 13 Abril 2010, 19:23 pm »

Bueno hace rato una mañana me levante pensando como las paginas web pueden auto-completar texto sin necesidad de tener un registro en nuestro historial de navegación, como lo hace google bueno me empape de la clase JComboBox asi que este fue el resultado:

Las palabras las tomo de arreglo de String, pero como lo cito en el code, para que sea un aplicación seria el arreglo debería ser dinámico lo mejor es consultar una base de datos y tomar los datos de allí, asi mismo si el termino no esta definido en la lista debe estar en la capacidad de adicionar mas palabritas, si alguien se le apunta de una lo apoyo

Bueno les dejo code t salud2

Código
  1. import java.awt.Container;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.ActionListener;
  4. import java.awt.event.KeyEvent;
  5. import java.sql.Date;
  6.  
  7. import javax.swing.*;
  8. import javax.swing.text.AttributeSet;
  9. import javax.swing.text.BadLocationException;
  10. import javax.swing.text.PlainDocument;
  11.  
  12. /*
  13.  * Autocompletar !!!!
  14.  * */
  15.  
  16. public class JAng3r extends JComboBox implements JComboBox.KeySelectionManager{
  17.  
  18.    public static void main(String[] args) {
  19.        JFrame f = new JFrame();
  20.        // Creamos el Marco o Frame
  21.        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  22.        // con este metodo podemos cerrar la ejecucion
  23.        // del programa
  24.        f.setSize(300,300);
  25.        // le damos el tamaño
  26.        Container c = f.getContentPane();
  27.        //Creamos el contenedor para alojar nuestras
  28.        // funciones GUI
  29.        c.setLayout(null);
  30.        String [] cuerpo ={"Andres","Ang3r","Foro","Texto"};
  31.        //pues por ahora le mando un arreglo pero cuando sea
  32.        // un aplicacion seria este arreglo se llena desde la
  33.        // base de datos
  34.        JComboBox j = new JAng3r(cuerpo);
  35.        // Hacemos Up-Casting
  36.        j.setBounds(50,50,100,20);
  37.        j.setEditable(true);
  38.        // Damos permisos para que se pueda editar
  39.        f.add(j);
  40.        // hacemos el upcasting
  41.        f.setVisible(true);
  42.    }    
  43.  
  44.    // ESTO ES RARO PERO SE PUEDE :)
  45.    // creamos un clase llamada formato la cual nos permite
  46.    // darle formato solamente en el tamaño de caracteres
  47.    //admitidos, asi como si acepta caracteres alfanuméricos
  48.    // o solo numéricos al elemento
  49.    public class Formato  extends PlainDocument{
  50.  
  51.        public void insertString(int offset, String str, AttributeSet a) throws BadLocationException{
  52.            // Podemos Observar que esta Retornando <----------
  53.            System.out.println(offset+" "+str);
  54.            if (str == null){
  55.                return;
  56.            }
  57.            super.insertString(offset,str, a);
  58.            if (str.length()!=0){
  59.                // Este metodo activa el evento grafico sin el
  60.                // el efecto no seria posible
  61.                fireActionEvent();
  62.            }
  63.        }
  64.    }
  65.  
  66.    public JAng3r(Object[] cuerpo) {
  67.        super(cuerpo);
  68.  
  69.        // Recordemos que JAng3r extiende o hereda de JComboBox
  70.        // Por estas razones le envio este objeto al evento
  71.        // setKeySelectionManager(JComboBox);
  72.        setKeySelectionManager(this);
  73.        JTextField jtext;
  74.        // con el metodo getEditor() retornamos el editor
  75.        // con el que se creo el JComboBox
  76.        jtext = (JTextField)getEditor().getEditorComponent();
  77.        // Le pasamos el formato al JtextField
  78.        jtext.setDocument(new Formato());
  79.        addActionListener(new ActionListener()
  80.        {
  81.            public void actionPerformed(ActionEvent evt)
  82.            {
  83.                JTextField textf = (JTextField)getEditor().getEditorComponent();
  84.                String text = textf.getText();
  85.                ComboBoxModel aModel = getModel();
  86.                String aux;
  87.                for(int i = 0; i < aModel.getSize(); i++)
  88.                {
  89.                    aux = aModel.getElementAt(i).toString();
  90.                    if(aux.toLowerCase().startsWith(text.toLowerCase()))
  91.                    {
  92.                        System.out.println(text+" tiene una Ocurrencia con: "+aux);
  93.                        textf.setText(aux);
  94.                        textf.setSelectionStart(text.length());
  95.                        textf.setSelectionEnd(aux.length());
  96.                        break;
  97.                    }
  98.                }
  99.            }
  100.        });
  101.    }
  102.    public int selectionForKey(char aKey, ComboBoxModel modelo) {
  103.        return 0;
  104.  
  105.    }
  106.  
  107. }

FUENTE



En línea

sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: [APORTE] Autocompler en un JComboBox
« Respuesta #1 en: 14 Abril 2010, 04:14 am »

buen aporte es recomedable que le quites el metod main que no tiene nada que ver


En línea

AFelipeTrujillo

Desconectado Desconectado

Mensajes: 160



Ver Perfil WWW
Re: [APORTE] Autocompler en un JComboBox
« Respuesta #2 en: 14 Abril 2010, 14:51 pm »

gracias pero no entiendo su apreciación ???
En línea

sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: [APORTE] Autocompler en un JComboBox
« Respuesta #3 en: 15 Abril 2010, 04:34 am »

que el metodo main(public static void main ...) deve estar en otra clase separada
En línea

AFelipeTrujillo

Desconectado Desconectado

Mensajes: 160



Ver Perfil WWW
Re: [APORTE] Autocompler en un JComboBox
« Respuesta #4 en: 15 Abril 2010, 14:22 pm »

ahhh ya pero eso es puro protocolo....
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda JComboBox...
Java
visualfree 1 2,834 Último mensaje 17 Junio 2011, 02:07 am
por klaine
JComboBox en un JTable
Java
Xedrox 1 3,724 Último mensaje 22 Agosto 2011, 17:48 pm
por Leyer
Actualizar JComboBox
Java
reylagarto19 1 4,167 Último mensaje 26 Agosto 2012, 01:19 am
por sapito169
JcomboBox master, change the values of all jComboBoxes on a Jatable
Java
masaMuscular 0 1,596 Último mensaje 2 Septiembre 2012, 06:06 am
por masaMuscular
Ayuda con Jcombobox
Java
reeyesg 3 2,330 Último mensaje 11 Junio 2015, 20:23 pm
por Usuario Invitado
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines