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

[SOLUCIONADO] copiar jtable a otro

Estas en el tema de copiar jtable a otro en el foro de Java en Foros del Web. hola a todos, espero poder recibir su ayuda y orientación, la verdad estoy desesperada, estoy en la ultima parte de un proyecto y no logro ...
  #1 (permalink)  
Antiguo 18/07/2013, 10:09
 
Fecha de Ingreso: julio-2013
Mensajes: 18
Antigüedad: 10 años, 9 meses
Puntos: 0
copiar jtable a otro

hola a todos, espero poder recibir su ayuda y orientación, la verdad estoy desesperada, estoy en la ultima parte de un proyecto y no logro avanzar hace días, como bien dice el tema necesito copiar el contenido de un jtable a otro, ahora redactare los detalles.

tengo dos ventanas la primera un jframe(padre) donde tengo un formulario de entrada de artículos, y la segunda un jdialog(hijo) que es donde se ingresan los productos, en el jdialog una vez el usuario ingresa todos los productos y el usuario ira al menú y presionara guardar, se supone que aquí, TODOS los artículos del jtable del hijo serán copiados al jtable del padre, pero la verdad, logre hacer algo, pero no era de herencia y borraba y dejaba abierto el frame que ahora es el padre, me dijeron que lo hiciera así, entonces se "setearia"(quizás quiso decir resetear) el jtable padre por decirlo así , y aparecerían los que están en el otro, pero la verdad me hablan en chino, pues no entiendo, y en Internet no veo códigos o hay muy poca información de esto. Como acotación trabajo en netbeans que es un lio, pero es lo que me pasaron en la oficina.



De antemano muchas gracias y espero su ayuda.
  #2 (permalink)  
Antiguo 18/07/2013, 11:05
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 11 años
Puntos: 9
Respuesta: copiar jtable a otro

Supongo que la JTable del hijo ya la tienes lista, con todos los datos. Ahora tienes que copiar el contenido de la JTable hijo a la del padre, sacas el modelo de tu tabla y ahora tienes que setear a la tabla padre.
Código Java:
Ver original
  1. TableModel model = jTable2.getModel();
  2.  
  3. jTable1.setModel(model);
  #3 (permalink)  
Antiguo 18/07/2013, 11:31
 
Fecha de Ingreso: julio-2013
Mensajes: 18
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: copiar jtable a otro

pues no u.u aqui esta mi codigo, quizas deba instanciar las tablas arriba en el frame como globales, bueno seguire probando, si alguien ve el error por favor digame, o si cree que deba añadir metodos o algo.


Código Java:
Ver original
  1. if(jtbDetalles.getRowCount()!=0 || jtbDetalles.getSelectedRow()!= -1)
  2.         {
  3.             vista.frmEntradasSalidas EnSal = new vista.frmEntradasSalidas();
  4.             tabla modelo2 = (tabla)EnSal.jtbDetalleEntrada.getModel();
  5.             tabla modelo1 = (tabla)jtbDetalles.getModel();
  6.            
  7.            
  8.             for(int i = 0; i < modelo1.getRowCount(); i++)
  9.             {
  10.                 Object[] fila = new Object[modelo1.getColumnCount()];
  11.                 for(int j=0; j<modelo1.getColumnCount(); j++)
  12.                 {    
  13.                     fila[j]= modelo.getValueAt(i, j);
  14.                    
  15.                 }
  16.                 modelo2.addRow(fila);
  17.             }
  18.            
  19.             JOptionPane.showMessageDialog(null, "listo oshibi");
  20.             EnSal.jtbDetalleEntrada.setModel(modelo2);
  21.             this.setVisible(false);
  22.         }
  23.         else
  24.         {
  25.             JOptionPane.showMessageDialog(null, "Por favor llene la tabla de Detalles\n           Minimo un articulo");
  26.         }

esto encontre que debia escribir en el frame hijo.
Código Java:
Ver original
  1. public dlgAgregarProducto(frmEntradasSalidas padre){
  2.         this.padre = padre;
  3.     }
  #4 (permalink)  
Antiguo 18/07/2013, 13:12
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 11 años
Puntos: 9
Respuesta: copiar jtable a otro

Una consulta, la tabla1(jFrame) y la tabla2(jDialog) son iguales?, tienen las mismas columnas y filas?
  #5 (permalink)  
Antiguo 18/07/2013, 13:41
 
Fecha de Ingreso: julio-2013
Mensajes: 18
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: copiar jtable a otro

Cita:
Iniciado por cazador1992 Ver Mensaje
Una consulta, la tabla1(jFrame) y la tabla2(jDialog) son iguales?, tienen las mismas columnas y filas?
bueno ambas empiezan sin ninguna fila, pero a la tabla hijo el usuario mediante un formulario va agregando una a una, las columnas

l ¿influira que no tengan filas y el usuario las llene durante el tiempo de ejecución?
  #6 (permalink)  
Antiguo 18/07/2013, 14:38
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 11 años
Puntos: 9
Respuesta: copiar jtable a otro

No me contestaste la pregunta, ¿las 2 tablas tienen que tener la misma cantidad de filas y columnas? si ese es el caso, con el model lo puedes hacer, sino es el caso vas a tener que copiar elemento por elemento en las ubicaciones que queres que queden.
  #7 (permalink)  
Antiguo 18/07/2013, 14:51
 
Fecha de Ingreso: julio-2013
Mensajes: 18
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: copiar jtable a otro

Cita:
Iniciado por cazador1992 Ver Mensaje
No me contestaste la pregunta, ¿las 2 tablas tienen que tener la misma cantidad de filas y columnas? si ese es el caso, con el model lo puedes hacer, sino es el caso vas a tener que copiar elemento por elemento en las ubicaciones que queres que queden.
perdon estaba en otra, y no lei bien, emmm si, ambas tablas tienen que tener la misma cantidad de filas y columnas

no entiendo eso del model ¿las igualo?¿alguna referencia? por favor
  #8 (permalink)  
Antiguo 18/07/2013, 15:32
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 11 años
Puntos: 9
Respuesta: copiar jtable a otro

Como te comente mas arriba, extraes el modelo de tu tabla, y se lo mandas a la tabla en donde quieres copiar el "contenido".

get para extraer el modelo de tu Jtable y el set, para mandarle el modelo a tu otra jTable.
  #9 (permalink)  
Antiguo 19/07/2013, 08:02
 
Fecha de Ingreso: julio-2013
Mensajes: 18
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: copiar jtable a otro

Cita:
Iniciado por cazador1992 Ver Mensaje
Como te comente mas arriba, extraes el modelo de tu tabla, y se lo mandas a la tabla en donde quieres copiar el "contenido".

get para extraer el modelo de tu Jtable y el set, para mandarle el modelo a tu otra jTable.

la verdad entiendo la idea, pero no copia.
también el código que muestro arriba copia la tabla y la envía al frame que tiene el otro table, pero vuelve a abrir el frame, lo que elimina los datos del otro formulario (y deja abierto el anterior), subiré imágenes, pongo el codigo en el frame del hijo (-.- odio usar netbeans) ¿sera mejor ponerlo en el padre o en una clase? =s bueno intentare. Aqui van las fotos y ademas un dato extra.




[URL="http://www.casimages.es/i/130719040153593762.jpg.html"]http://www.casimages.es/i/130719040153593762.jpg.html[/URL]
el formulario de debo llenar y el principal.

[URL]http://www.casimages.es/i/130719040152892391.jpg.html[/URL]
el formulario de artículos, este debe enviar la información del table al otro, es un jdialog y es ventana secundaria.

ahora mostrare todo el codigo TODO refeente a las tablas :s haber si ven el error

Código Java:
Ver original
  1. public class dlgAgregarProducto extends javax.swing.JDialog {
  2.           vista.frmEntradasSalidas entra = new vista.frmEntradasSalidas();
  3.           tabla modelo = new tabla();
  4.          
  5.  
  6.  private void btnAnadirActionPerformed(java.awt.event.ActionEvent evt) {                                          
  7.         //Añadira fila con  todos los datos a la tabla y blanqueara los textfield
  8.        
  9.        
  10.         if(this.cbxCategoria.getSelectedItem().equals("Seleccione...")||this.cbxArticulo.getSelectedItem().equals("Seleccione...") ||this.txtCantidad.getText().equals("") || this.txtValorUnitario.getText().equals(""))
  11.         {
  12.             JOptionPane.showMessageDialog(null, "Debe Seleccionar y rellenar todos los campos");
  13.         }
  14.         else
  15.         {          
  16.             jtbDetalles.setModel(modelo);
  17.             Object[] datos = new Object[5];
  18.             datos[0] = Integer.parseInt(txtCodigo.getText());
  19.             datos[1] = (String) cbxCategoria.getSelectedItem();
  20.             datos[2] = (String) cbxArticulo.getSelectedItem();
  21.             datos[3] = Integer.parseInt(txtCantidad.getText());
  22.             datos[4] = Integer.parseInt(txtValorUnitario.getText());
  23.             modelo.addRow(datos);
  24.            
  25.            
  26.             //ahora limpiamos
  27.             limpiar();
  28.         }
  29.     }    
  30.  
  31.  private void mnuGuardarActionPerformed(java.awt.event.ActionEvent evt) {                                          
  32.         //esto enviaria la tabla a la otra, pero no funciona
  33.  
  34.         if(jtbDetalles.getRowCount()!=0 || jtbDetalles.getSelectedRow()!= -1)
  35.         {
  36.            TableModel model = this.jtbDetalles.getModel();
  37.            entra.jtbDetalleEntrada.setModel(model);
  38.            this.setVisible(false);
  39.         }
  40.         else
  41.         {
  42.             JOptionPane.showMessageDialog(null,"Necesita minimo un articulo","Rellene tabla",JOptionPane.WARNING_MESSAGE);
  43.         }
  44.        
  45.        
  46.        
  47.     }      
  48.  
  49.  
  50. }


el boton guardar (btnAnadir) añade tablas con todos los datos ingresados del articulo, y el menu guardar (mnuGuardar) copiaria el modelo y lo enviaria al frame padre, a la tabla =s quite el codigo de padre pues siento que no hacia lo qeu debia

Última edición por kameron_top3; 19/07/2013 a las 10:07
  #10 (permalink)  
Antiguo 19/07/2013, 11:50
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 11 años
Puntos: 9
Respuesta: copiar jtable a otro

Prueba lo siguiente, yo ya lo probé me anduvo, en tu clase principal (jFrame) crea una variable global:

Código Java:
Ver original
  1. public static TableModel model;

y en el boton que llama a tu jDialog:

Código Java:
Ver original
  1. Dialog dialogo = new Dialog(this,true); //creas el jDialog
  2.         dialogo.setVisible(true);//HASTA Q NO SE CIERRE EL JDIALOG NO PASA DE AQUI.
  3.        
  4.         this.jTable1.setModel(model);

y en el jDialog al pulsar menu-guardar:

Código Java:
Ver original
  1. Principal.model = this.jTable1.getModel();
  2.         this.dispose();
  #11 (permalink)  
Antiguo 19/07/2013, 12:30
 
Fecha de Ingreso: julio-2013
Mensajes: 18
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: copiar jtable a otro

Cita:
Iniciado por cazador1992 Ver Mensaje
Prueba lo siguiente, yo ya lo probé me anduvo, en tu clase principal (jFrame) crea una variable global:

Código Java:
Ver original
  1. public static TableModel model;

y en el boton que llama a tu jDialog:

Código Java:
Ver original
  1. Dialog dialogo = new Dialog(this,true); //creas el jDialog
  2.         dialogo.setVisible(true);//HASTA Q NO SE CIERRE EL JDIALOG NO PASA DE AQUI.
  3.        
  4.         this.jTable1.setModel(model);

y en el jDialog al pulsar menu-guardar:

Código Java:
Ver original
  1. Principal.model = this.jTable1.getModel();
  2.         this.dispose();


¡¡¡¡muchas pero muchas gracias!!!! llevaba muchos días en esto, y el tiempo para entregarlo se acababa, perdón por la molestia, y le agradezco que se tomara el tiempo de ayudarme

Etiquetas: jtable
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 01:28.