Capturar Letras Que Se Presionan Estando En Un Textfield

Iniciado por ZedGe, 25 Noviembre 2011, 03:47 AM

0 Miembros y 1 Visitante están viendo este tema.

ZedGe

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???


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


RyogiShiki

#2
Mira esta clase que acabo de hacer:

MainFrame.java
Código (java,34,35,36,9,17) [Seleccionar]

import java.awt.FlowLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

class MainFrame extends JFrame implements KeyListener {

private JTextField text = new JTextField(20);
private String textInJTextField;
private JLabel label = new JLabel();

public MainFrame() {

text.addKeyListener(this);
this.setLayout(new FlowLayout());
this.getContentPane().add(text);
this.getContentPane().add(label);
this.setSize(500, 100);
//this.setResizable(false);
}

@Override
public void keyTyped(KeyEvent e) {
}

@Override
public void keyPressed(KeyEvent e) {
}

@Override
public void keyReleased(KeyEvent e) {
textInJTextField = text.getText();
label.setText(textInJTextField);
}
}


MainApp.java
Código (java) [Seleccionar]

public class MainApp {
public static void main(String args[]) {
MainFrame mf = new MainFrame();
mf.setVisible(true);

}
}


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


ZedGe

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