Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Mostrar datos en JTextfield enviados desde otro Frame

Estas en el tema de Mostrar datos en JTextfield enviados desde otro Frame en el foro de Java en Foros del Web. Hola, estoy realizando un programa en NetBeans 7.4, sobre un proyecto de Electricidad. El programa tiene 3 frames: La primera llamada Clientex (frame 1) en ...
  #1 (permalink)  
Antiguo 06/03/2014, 11:05
 
Fecha de Ingreso: marzo-2014
Mensajes: 11
Antigüedad: 10 años, 1 mes
Puntos: 0
Mostrar datos en JTextfield enviados desde otro Frame

Hola, estoy realizando un programa en NetBeans 7.4, sobre un proyecto de Electricidad.

El programa tiene 3 frames: La primera llamada Clientex (frame 1) en la que consulto datos personales de los clientes a una BD (eso si me funciona), además en ese frame se ingresan otros datos como Lecturas (label Lect) y Sellos Instalados (label Sellos instal).
Al dar clic en el JTextfield de Lect se abre otra ventana llamada Lecturas (frame 2), en ella ingreso datos númericos de las lecturas como KwhA...TKwh. Al dar clic en Aceptar se cierra esa ventana y los datos insertados en esas cajas de textos se deben mostrar en la caja de texto Lect ubicado en Clientex (frame principal) .

Lo he intentado hacer con el setText y gexText es decir extrayendo los datos del frame 2 (Lecturas) y ubicando en la caja de texto de Lect en el frame 1. El caso es que se ingresan los datos, doy aceptar, se cierra ese frame, pero en el frame principal no se ven los datos en la caja de texto.

Hasta lo estuve haciendo con archivos de texto, es decir que los datos se almacen alli, y luego que se muestren en esa caja de texto (Lect) pero no me funciona.

Este es el frame de Cliente
http://www.lawebdelprogramador.com/usr/165000/165250/5318a09638b21-Cliente.JPG

Este es el frame de Lecturas
http://www.lawebdelprogramador.com/usr/165000/165250/5318a0b087028-Lecturas.JPG

No pude subir las imagenes directamente aqui, porque tengo desactivado el [img]

Gracias por la ayuda.
  #2 (permalink)  
Antiguo 06/03/2014, 13:55
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 10 años, 11 meses
Puntos: 9
Respuesta: Mostrar datos en JTextfield enviados desde otro Frame

Amigo pon algo de código, no podemos adivinar tu código con unas fotos de unas ventanas.
  #3 (permalink)  
Antiguo 06/03/2014, 14:05
 
Fecha de Ingreso: marzo-2014
Mensajes: 11
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Mostrar datos en JTextfield enviados desde otro Frame

Este es el código que está en Clientex (frame principal)


//Evento cuando se da clic en la caja de texto y se abre el otro frame (Lecturas)

private void lectMouseClicked(java.awt.event.MouseEvent evt) {
Lecturas lec = new Lecturas();
try {
if((lec.linea != null))
{
din = new DataInputStream(new FileInputStream("Datos.txt"));
lect.setText(lec.linea); // lect es el nombre de la caja de texto de lectura
din.close();
}

} catch (FileNotFoundException ex) {
Logger.getLogger(Clientex.class.getName()).log(Lev el.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Clientex.class.getName()).log(Lev el.SEVERE, null, ex);
}

lec.setLocationRelativeTo(null);
lec.setVisible(true);

}


Este es el código que está en Lecturas (frame 2)

//método para crear el archivo txt

public void crearTxt() throws FileNotFoundException
{
dou = new DataOutputStream(new FileOutputStream("Datos.txt"));
}


//al dar clic en aceptar

private void aceptarActionPerformed(java.awt.event.ActionEvent evt) {

if(EnergiaT.getText().trim().length()==0)
{
JOptionPane.showMessageDialog(this,"Debe ingresar T Kwh");
}
else {
try{
crearTxt();
linea = EnergiaA.getText()+","+EnergiaB.getText()+","+Ener giaC.getText()+","+EnergiaT.getText()+","+DemandaA .getText()+","+DemandaB.getText()+","+DemandaC.get Text()+","+ReactivoVarh.getText();

dou.writeBytes(linea);

dou.close();
this.dispose();
}catch (IOException ex) {
Logger.getLogger(Lecturas.class.getName()).log(Lev el.SEVERE, null, ex);
}
}
}

Última edición por VictorAbarca; 06/03/2014 a las 14:10 Razón: Falto poner codigo
  #4 (permalink)  
Antiguo 06/03/2014, 15:01
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 10 años, 11 meses
Puntos: 9
Respuesta: Mostrar datos en JTextfield enviados desde otro Frame

Si tu ventana Lecturas (frame2) la haces modal, osea que sea un jdialog; entonces en tu clase principal cuando crees el objeto Lecturas y lo muestres (setvisible(true)) se pausara la ejecución del código en la clase frame y una vez que termines con la ventana Lecturas seguirá corriendo el código.

Código Java:
Ver original
  1. Lecturas lec = new Lecturas();
  2. lec.setVisible(true);
  3. lect.setText(lec.getTexto());

En tu clase lecturas creas un método que te devuelva lo que el usuario ingreso (un simple get), en el botón lo que tienes que hacer es guardar todo eso que tienes en un atributo que sea de clase, el cual es el que sera devuelto.
  #5 (permalink)  
Antiguo 07/03/2014, 08:22
 
Fecha de Ingreso: marzo-2014
Mensajes: 11
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Mostrar datos en JTextfield enviados desde otro Frame

Hola cazador1992, ya hice Lecturas como JDialog, usé el getText en el momento que se daba clic en aceptar.
Aunque en Clientes (frame principal), le puse al final:
lect.setText(lec.getTexto());
no me funcionó, ya que me salia error en lec (nombre del objeto de Lecturas)

Yo le cambié en Lecturas, por esto:

private void aceptarActionPerformed(java.awt.event.ActionEvent evt) {
if(EnergiaT.getText().trim().length()==0)
{
JOptionPane.showMessageDialog(this,"Debe ingresar T Kwh");
}
else{
info = EnergiaT.getText(); //info lo declaré public static String
this.dispose();
}
}

En Clientes puse esto:

Lectura lec = new Lectura(new javax.swing.JFrame(), true);
lec.setLocationRelativeTo(null);
lec.setVisible(true);
lect.setText(lec.info);

y Funcionó.

Gracias.

Etiquetas: enviados, frame, jtextfield, netbeans, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:42.