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
public class prueba() {
......
String datos;
.......
Texto1 = new JTextField( 30 );
Texto1.setBounds(250,50,500,50);
add(Texto1 );
}
LO que tengo es esto
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
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
package edu.probes.java;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
public class MainFrame extends JFrame implements DocumentListener {
private JTextField text = new JTextField(20);
private String textInJTextField;
public MainFrame() {
text.getDocument().addDocumentListener(this);
this.add(text, BorderLayout.NORTH);
this.setSize(500, 100);
}
@Override
public void insertUpdate(DocumentEvent e) {
textInJTextField = text.getText();
print(textInJTextField);
}
@Override
public void removeUpdate(DocumentEvent e) {
textInJTextField = text.getText();
print(textInJTextField);
}
@Override
public void changedUpdate(DocumentEvent e) {
}
public void print(String s) {
System.out.println(s);
}
}
MainApp.java
package edu.probes.java;
public class MainApp {
public static void main(String args[]) {
MainFrame fm = new MainFrame();
fm.setVisible(true);
}
}
Saludos
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?
Pues como verás la función:
public MainFrame ()
Es un constructor, y los constructores solo se ejecutan un vez, a la hora de crear el objeto. Por eso no sale.
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
Bien me alegra que te haya servido.
Saludos