Foro de elhacker.net

Programación => Java => Mensaje iniciado por: ZedGe en 25 Noviembre 2011, 03:47 am



Título: Capturar Letras Que Se Presionan Estando En Un Textfield
Publicado por: ZedGe en 25 Noviembre 2011, 03:47 am
Necesito que se ingrese un cogido en un textfield para hacer una búsqueda automática, es decir, sin presionar enter..
Para eso tengo un capturador de teclas en ese texfield, para que deje solo los números... lo que quiero es guardar esos números en una variable y que automáticamente busque la coincidencia con lo ingresado.....
espero entiendan :S



En otras palabras es que si yo pongo un 1 me busque todo mis datos que empiezan con 1, pero sin apretar enter o apretar un botón para que recién busque, si no que sea automático.

Se me ocurre un IF que al poner un 1, lo busque y un lenght o algo asi para que me vaia poniendo cuanto es el largo ya que el largo es comun (13) y recien ahi lo muestre por pantalla, pero como voy guardando dinamicamente los datos que se van ingresando???


Código:
 campoTexto1.addKeyListener(new KeyAdapter() {

             public void keyTyped(KeyEvent e) {
                 char caracter = e.getKeyChar();
                 if (((caracter < '0')
                         || (caracter > '9'))
                         && (caracter != KeyEvent.VK_BACK_SPACE)) {
                     e.consume();
                     System.out.println(caracter);
                 }
                
             }
         });


El system es para ver solamente los caracteres que apreto xD


Título: Re: Capturar Letras Que Se Presionan Estando En Un Textfield
Publicado por: 1mpuls0 en 25 Noviembre 2011, 04:12 am
Esto te servirá.
http://foro.elhacker.net/empty-t290429.0.html

Saludos


Título: Re: Capturar Letras Que Se Presionan Estando En Un Textfield
Publicado por: RyogiShiki en 25 Noviembre 2011, 04:15 am
Mira esta clase que acabo de hacer:

MainFrame.java
Código
  1. import java.awt.FlowLayout;
  2. import java.awt.event.KeyEvent;
  3. import java.awt.event.KeyListener;
  4.  
  5. import javax.swing.JFrame;
  6. import javax.swing.JLabel;
  7. import javax.swing.JTextField;
  8.  
  9. class MainFrame extends JFrame implements KeyListener {
  10.  
  11. private JTextField text = new JTextField(20);
  12. private String textInJTextField;
  13. private JLabel label = new JLabel();
  14.  
  15. public MainFrame() {
  16.  
  17. text.addKeyListener(this);
  18. this.setLayout(new FlowLayout());
  19. this.getContentPane().add(text);
  20. this.getContentPane().add(label);
  21. this.setSize(500, 100);
  22. //this.setResizable(false);
  23. }
  24.  
  25. @Override
  26. public void keyTyped(KeyEvent e) {
  27. }
  28.  
  29. @Override
  30. public void keyPressed(KeyEvent e) {
  31. }
  32.  
  33. @Override
  34. public void keyReleased(KeyEvent e) {
  35. textInJTextField = text.getText();
  36. label.setText(textInJTextField);
  37. }
  38. }
  39.  

MainApp.java
Código
  1. public class MainApp {
  2. public static void main(String args[]) {
  3. MainFrame mf = new MainFrame();
  4. mf.setVisible(true);
  5.  
  6. }
  7. }
  8.  

Lo que haces envés de mostrarlo en un JLabel como hago es mandar la cadena a un método de Búsqueda que actualice los resultados también.

Saludos


Título: Re: Capturar Letras Que Se Presionan Estando En Un Textfield
Publicado por: ZedGe en 25 Noviembre 2011, 04:36 am
RyogiShiki Tu código esta perfecto, pero también tiene lo que me falta... quiero que en vez de escribirlo en el texfield

label.setText(textInJTextField);


lo guarde en una variable... la cual ya por ejemplo dentro del public MainFrame() { ..... ponga un

System.out.println(variable); y lo que se escriba se vaia viendo en ese system