Foro de elhacker.net

Programación => Java => Mensaje iniciado por: ZedGe en 25 Noviembre 2011, 19:26 pm



Título: Capturar Automáticamente Datos JTextfield
Publicado por: ZedGe en 25 Noviembre 2011, 19:26 pm
Alguien que me pueda ayudar con esta idea...

Lo que quiero es tener una clase cualquiera..... que tenga la variable datos y un jtextfield.. quiero que se capture automáticamente 'lo que se ingrese a ese textfield y poder usarlo dentro de la clase

Código:
public class prueba() {
......
 String datos;
.......
Texto1 = new JTextField( 30 );
        Texto1.setBounds(250,50,500,50);
        add(Texto1 );

}


LO que tengo es esto
Código:
public class prueba() {
......
 String datos;
.......
Texto1 = new JTextField( 30 );
        Texto1.setBounds(250,50,500,50);
        add(Texto1 );

Texto1.addKeyListener(new KeyAdapter() {

             public void keyTyped(KeyEvent e) {
              char caracter = e.getKeyChar();     
              datos=datos + caracter;
             }
         });

System.out.println(datos);
}

en char creo que se guardan las variables.... y quiero sacar todo los datos que se escriben automáticamente en datos, pero no lo logro por que como que se borran las teclas ya que con ese System deberia ir viendo que sale pero no sale nada.....

Tambien tengo pensado que si se ingresan 13 datos cerrar eso y guardarlo todo en datos... pero tampoco se como


Título: Re: Capturar Automáticamente Datos JTextfield
Publicado por: RyogiShiki en 25 Noviembre 2011, 20:08 pm
Mira esta clase, cambia e enfoque totalmente usando DocumentListeners (http://docs.oracle.com/javase/1.4.2/docs/api/javax/swing/event/DocumentListener.html):

MainFrame.java
Código
  1. package edu.probes.java;
  2.  
  3. import java.awt.BorderLayout;
  4.  
  5. import javax.swing.JFrame;
  6. import javax.swing.JTextField;
  7. import javax.swing.event.DocumentEvent;
  8. import javax.swing.event.DocumentListener;
  9.  
  10. public class MainFrame extends JFrame implements DocumentListener {
  11.  
  12. private JTextField text = new JTextField(20);
  13. private String textInJTextField;
  14.  
  15. public MainFrame() {
  16. text.getDocument().addDocumentListener(this);
  17.  
  18. this.add(text, BorderLayout.NORTH);
  19.                this.setSize(500, 100);
  20.  
  21. }
  22.  
  23. @Override
  24. public void insertUpdate(DocumentEvent e) {
  25. textInJTextField = text.getText();
  26. print(textInJTextField);
  27.  
  28. }
  29.  
  30. @Override
  31. public void removeUpdate(DocumentEvent e) {
  32. textInJTextField = text.getText();
  33. print(textInJTextField);
  34.  
  35. }
  36.  
  37. @Override
  38. public void changedUpdate(DocumentEvent e) {
  39. }
  40.  
  41. public void print(String s) {
  42. System.out.println(s);
  43. }
  44. }

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

Saludos


Título: Re: Capturar Automáticamente Datos JTextfield
Publicado por: ZedGe en 25 Noviembre 2011, 23:40 pm
No es lo que quería...... pero hice unas modificaciones y me sirvió de lujo :P


en realidad borre lo que tenia y según lo que mandaste cambiare los planes :P




Gracias Te Pasaste...



Si puedes de todas formas ayudarme en esto hipotéticamente.....

si hago un String cosa; dentro de la clase MainFrame
y pongo un cosa = s; en la funcion print... por que al poner un system dentro del public MianFrame no imprime nada?



Título: Re: Capturar Automáticamente Datos JTextfield
Publicado por: RyogiShiki en 26 Noviembre 2011, 00:00 am
Pues como verás la función:

Código
  1. public MainFrame ()

Es un constructor, y los constructores solo se ejecutan un vez, a la hora de crear el objeto. Por eso no sale.


Título: Re: Capturar Automáticamente Datos JTextfield
Publicado por: ZedGe en 26 Noviembre 2011, 00:04 am
Así es pero pedía la forma de hacer eso "virtualmente" , pero se me ocurrio una idea xD




Gracias por tu código me será de mucha ayuda


Título: Re: Capturar Automáticamente Datos JTextfield
Publicado por: RyogiShiki en 26 Noviembre 2011, 00:15 am
Bien me alegra que te haya servido.

Saludos