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

Enviar datos entre frames y textfields

Estas en el tema de Enviar datos entre frames y textfields en el foro de Java en Foros del Web. Buenos días a todos, el problema es el siguiente: resulta que tengo dos frames en netbeans, en uno tengo la lista de articulos y el ...
  #1 (permalink)  
Antiguo 24/07/2013, 08:23
 
Fecha de Ingreso: julio-2013
Mensajes: 18
Antigüedad: 10 años, 9 meses
Puntos: 0
Enviar datos entre frames y textfields

Buenos días a todos, el problema es el siguiente:

resulta que tengo dos frames en netbeans, en uno tengo la lista de articulos y el otro se abre al seleccionar un articulo y presionar un boton, se supone que debe enviarme el codigo del articulo, para poder hacer las consultas pertinentes a la base de datos y otras operaciones, propias del frame. En si el codigo aparece en el textfield codigo, pero cuando trato de recoger el dato o imprimirlo, el dato es blanco, a pesar que se ve el codigo, ¿alguna idea?

asi envio el codigo:
Código Java:
Ver original
  1. vista.frmArticulo articulo = new vista.frmArticulo();
  2.             articulo.setVisible(true);
  3.             articulo.txtCodigo.setText(txtCodigoArticulo.getText());
  4.             this.setVisible(false);

asi lo recibo dentro de un metodo x:

Código Java:
Ver original
  1. String codigo = consul.txtCodigoArticulo.getText();

¿podrían ayudarme por favor?, es urgente poder terminar esa pantalla o_o y no se que va mal.
  #2 (permalink)  
Antiguo 24/07/2013, 09:01
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 10 años, 11 meses
Puntos: 9
Respuesta: Enviar datos entre frames y textfields

Al presionar el botón en el frame1, te tiene que abrir el frame2 y tienes que enviarle el código del frame1 al frame2, si es ese el caso en el frame2 declara un método publico que reciba el código:

Código Java:
Ver original
  1. public void codigo(String codigo){
  2. this.codigo = codigo;

y en el frame1 al presionar el boton:
Código Java:
Ver original
  1. frame2 f2 = new frame2();
  2. f2.setVisible(true);
  3. f2.codigo(txtCodigo.getText());
  #3 (permalink)  
Antiguo 24/07/2013, 10:07
 
Fecha de Ingreso: julio-2013
Mensajes: 18
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Enviar datos entre frames y textfields

Cita:
Iniciado por cazador1992 Ver Mensaje
Al presionar el botón en el frame1, te tiene que abrir el frame2 y tienes que enviarle el código del frame1 al frame2, si es ese el caso en el frame2 declara un método publico que reciba el código:

Código Java:
Ver original
  1. public void codigo(String codigo){
  2. this.codigo = codigo;

y en el frame1 al presionar el boton:
Código Java:
Ver original
  1. frame2 f2 = new frame2();
  2. f2.setVisible(true);
  3. f2.codigo(txtCodigo.getText());

sigue enviando nulo, por alguna razon el dato enviado es nulo, mando a imprimir antes de enviar el dato, o sea imprimo el contenido del textfield y aparece el codigo, pero cuando mando a imprimir desde el otro frame el nulo.
  #4 (permalink)  
Antiguo 24/07/2013, 10:12
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 10 años, 11 meses
Puntos: 9
Respuesta: Enviar datos entre frames y textfields

¿Da algun error? si da null, es que lo que estas enviando es null...
  #5 (permalink)  
Antiguo 24/07/2013, 10:36
 
Fecha de Ingreso: julio-2013
Mensajes: 18
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Enviar datos entre frames y textfields

Cita:
Iniciado por cazador1992 Ver Mensaje
¿Da algun error? si da null, es que lo que estas enviando es null...
no da error, =s y eso es raro, en el anterior codigo, el textfield imprimia el codigo pero no lograba cogerlo desde el textfield donde se mostraba y usarlo, ahora recibo en la variable, no lo mando al textfield y aun asi es nulo =s siendo que imprimo para verificar

frame1 donde envio:

Código Java:
Ver original
  1. String codig = txtCodigoArticulo.getText();
  2.  System.out.println("+"+codig);
  3.            
  4. vista.frmArticulo articulo = new vista.frmArticulo();
  5. articulo.codigo(codig);
  6. articulo.setVisible(true);
  7. this.setVisible(false);

como lo recibo:
Código Java:
Ver original
  1. public String codigo;
  2.  
  3.     public void codigo(String codigo) {
  4.         this.codigo = codigo;
  5.     }

aqui trato de usarlo e imprime null:
Código Java:
Ver original
  1. public void llenarDetalle(){
  2.         conex.preparardb();
  3.         String cod = this.codigo;      
  4.         System.out.println("- "+cod);
  5. }
  #6 (permalink)  
Antiguo 24/07/2013, 11:04
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 10 años, 11 meses
Puntos: 9
Respuesta: Enviar datos entre frames y textfields

Una vez que creaste el nuevo objeto frame2, luego le mandas a una variable el código,¿en que momento cargas este código en el jtextfield?.

Ami me funciona el código.
  #7 (permalink)  
Antiguo 24/07/2013, 11:20
 
Fecha de Ingreso: julio-2013
Mensajes: 18
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Enviar datos entre frames y textfields

en el nuevo que les mande en ningún momento. Lo que hago es tener una variable como menciono antes, y tratar de usarla para distintos métodos, el problema es que por alguna razón esta nula, no se puede que no la este recibiendo bien, si creo que en ningun momento la recibo eso creo, y puede que por eso al mandar a imprimir imprima null, ... no se si le respondi lo que pregunto, pero ahí va como antes mostraba el codigo en el frame2, pero al querer extraerlo con gettext extraía un nulo. hoy mando a una variable y es igual, aunque no estoy segura que pasa con la variable, puede que no reciba.

antes enviaba asi el valor(y tratada de coger con gettext el valor pero era nulo, a pesar de que yo podia ver el codigo):
Código Java:
Ver original
  1. articulo.txtCodigo.setText(txtCodigoArticulo.getText());
  #8 (permalink)  
Antiguo 24/07/2013, 12:42
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 10 años, 11 meses
Puntos: 9
Respuesta: Enviar datos entre frames y textfields

Si tu variable en el frame2 esta nula, es debido a que cuando invocas:
Código Java:
Ver original
  1. String codig = txtCodigoArticulo.getText();
  2.  System.out.println("+"+codig);
  3.            
  4. vista.frmArticulo articulo = new vista.frmArticulo();
  5. articulo.codigo(codig);
  6. articulo.setVisible(true);
  7. this.setVisible(false);

Le estas pasando una variable nula, verifica que estes pasando la variable correctamente.
  #9 (permalink)  
Antiguo 25/07/2013, 08:02
 
Fecha de Ingreso: julio-2013
Mensajes: 18
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Enviar datos entre frames y textfields

no creo que envié un dato nulo, creo que simplemente no lo estoy recibiendo

cree un proyecto nuevo, mas limpio por que el mio ya tiene mucho código he implemente este, y estoy casi segura que me falta recivirlo ._. cuando se habre el frame, estoy en lo cierto? ._. que codigo debo poner? o.0
Código Java:
Ver original
  1. public class frame2 extends javax.swing.JFrame {
  2.     private String codigo;
  3.  
  4.     public void codigo(String codigo){
  5.         this.codigo = codigo;
  6.     }
  7.     /**
  8.      * Creates new form frame2
  9.      */
  10.     public frame2() {
  11.         initComponents();
  12.         JOptionPane.showMessageDialog(null, ""+codigo);
  13.     }


es cierto? pues cuando imprimo lo recogido del textfield aparece lo que ingreso ¿como lo recojo al otro lado?
  #10 (permalink)  
Antiguo 25/07/2013, 10:43
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 10 años, 11 meses
Puntos: 9
Respuesta: Enviar datos entre frames y textfields

Código Java:
Ver original
  1. public void codigo(String codigo){
  2.         this.codigo = codigo;
  3.         this.jTextField.setText(this.codigo);
  4.     }

Esto:
Código Java:
Ver original
  1. JOptionPane.showMessageDialog(null, ""+codigo);

Te va dar null, xq primero creas el objeto frame2 y después le mandas la variable, esa linea de código de arriba se ejecuta ANTES de que le mandes el código.
  #11 (permalink)  
Antiguo 25/07/2013, 11:54
 
Fecha de Ingreso: julio-2013
Mensajes: 18
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Enviar datos entre frames y textfields

ok, abre el frame y lo muestra. EL problema que despues de initComponents();
tengo un JOptioPane solo para mostrar lo que esta dentro del codigo: esta si:
Código Java:
Ver original
  1. JOptionPane.showMessageDialog(null,""+this.txtCodigo.getText());

pero me muestra blanco...acaso el codigo solo lo podre usar dentro del metodo? por que la idea era poder usarlo en otros metodos, ya que necesito hacer muchas operaciones y consultas a la base de datos. =s y si solo lo muestar no sirve

Código Java:
Ver original
  1. public void codigo(String codigo){
  2.         this.codigo = codigo;
  3.         this.txtCodigo.setText(this.codigo);
  4.     }

yn no puedo llamar al metodo despues de initComponents()...digo para usarlo? he tratado xD y no se puede segun yo.
  #12 (permalink)  
Antiguo 25/07/2013, 12:25
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 10 años, 11 meses
Puntos: 9
Respuesta: Enviar datos entre frames y textfields

Vamos de nuevo todo lo que este en el constructor TODO, se va a ejecutar ANTES de que le pases la variable código, POR ESO te muestra blanco xq todavía no le pasaste la variable.

1° Creas el objeto -Se van a ejecutar TODAS las lineas de código que tengas en el constructor, si invocas un método desde el constructor que tenga que utilizar dicha variable no podrás(no existe aun, no la mandaste)-
2° Después le pasas la variable código. Ahora si la invocas, la podrás utilizar.

Si tienes que utilizar el codigo en el constructor puedes hacer lo siguiente (NOSE SI ESTA BIEN HACER ESTO):

Código Java:
Ver original
  1. public class frame2 extends javax.swing.JFrame {
  2.  
  3.     /**
  4.      * Creates new form frame2
  5.      */
  6.     private String codigo;
  7.  
  8.  
  9.     public frame2(String codigo) {
  10.  
  11.         initComponents();
  12.         this.codigo = codigo;
  13.         this.jTextField1.setText(this.codigo);
  14. // y todo lo que se te ocurra
  15.  
  16.     }


En el JFrame1, en el botón que invoca todo:

Código Java:
Ver original
  1. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  2.  
  3.         frame2 f2;
  4.         f2 = new frame2("esteEsElCodigo");
  5.         f2.setVisible(true);
  6.     }
  #13 (permalink)  
Antiguo 25/07/2013, 13:56
 
Fecha de Ingreso: julio-2013
Mensajes: 18
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Enviar datos entre frames y textfields

gracias por explicarme eso, y perdón por tardar en entender, ahora de otra forma muy similar hago lo que debia ^-^ muchas gracias, me sirvió de guia

Etiquetas: frames, netbeans, textfield
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 23:17.