Author Topic: AÑADIR FILAR A UN JTABLE  (Read 370 times)

TONO2

  • Newbie
  • *
  • Posts: 5
  • Karma: 0
    • View Profile
AÑADIR FILAR A UN JTABLE
« on: Diciembre 23, 2019, 03:35:56 am »
Hola compañeros, tengo un problema que no sé como solucionarlo.
Tengo un JTable (tblTabla1) que mediante un método, pasa las filas a otro JTable (tblTabla3) y por otro lado, mediante otro método, traigo registro de una Base de Datos al mismo tblTabla3.
Individualmente pasan bien lo datos al tblTabla3, pero necesito que pase los registros del tblTabla1 al tblTabla3 y a continuación los de la BBDD.
Copio los métodos traspasaProductocero() (pasa los datos deñ tblTabla1 al tblTabla3) y traspasaProductocero() (pasa los registros de la BBDD al tblTabla3).

    //Traspasa los productos con saldo cero en el lote del JTabla1. Trae del JTable2 vat01 = Código del producto.
    public void traspasaProductocero(){
        String vat01t = "";
        String vat02t = "";
        filan = 0;
        DefaultTableModel modelo31 = (DefaultTableModel)tblTabla3.getModel();
        for (int filap = 0; filap < tblTabla1.getRowCount(); filap++) {
            // Captura en variables los datos de la fila del JTable2 y obtiene la cantidad de producto por aplicar al lote y el código y el nombre del producto fito.
            vat01t = (String) modelo1.getValueAt(filap, 3);  //Código
            vat02t = (String) modelo1.getValueAt(filap, 6);  //Existencia
            if (vat01.equals(vat01t)&&(vat02t.equals("0"))) {
                // Crear un vector
                String Vector[] = new String[7];
                // Le asignamos al vector la captura de los datos del JTable4 en FormFitoSalidaModificar.
                Vector[0] = tblTabla1.getValueAt(filap, 5).toString();
                Vector[1] = "";
                Vector[2] = tblTabla1.getValueAt(filap, 3).toString();
                Vector[3] = tblTabla1.getValueAt(filap, 4).toString();
                Vector[4] = "";
                Vector[5] = "";
                Vector[6] = tblTabla1.getValueAt(filap, 2).toString();
                // Llamamos al modelo del programa2 y le agregamos el vector como una nueva fila
                modelo31.addRow(Vector);   
                filan = filan  + 1;
            }
        }
        buscaProducto();
    }   

    //Busca el lote del producto fito
    public void buscaProducto(){
        //Para poner los títulos de la tabla
        String[] titulos = {"LOTE", "FECHA", "COD.","PRODUCTO", "PRESENTACIÓN", "UNIDAD", "EXISTENCIAS"};
        //Para agregar los elementos de la tabla
        String[] registro = new String[7];
        modelo3 = new DefaultTableModel(null, titulos);
        //Para establecer la conexión
        ConexionMySQL mysql = new ConexionMySQL();
        Connection cn = mysql.Conectar();
        //Crea la consulta MySQL
        SQL = "SELECT Lote, Fecha, Codproducto, Producto, Presentacion, Unidad, Existencia FROM fito_lotes WHERE Codproducto = '"+vat01+"' AND Existencia > '0'  "
                + "AND (Movimiento ='Alta' OR Movimiento = 'Alta Manual') AND Existencia >0";
        try {
            PreparedStatement st = cn.prepareStatement(SQL);
            ResultSet rs = st.executeQuery(SQL);
            while(rs.next()){
                registro[0] = rs.getString("Lote");
                va12m = rs.getString("Fecha").toString();
                //Método para cambiar la configuración del dato de yyyy-MM-dd  a  dd-MM-yyyy
                CambiaFormatoFechaVisible();
                registro[1] = va12m;
//                registro[1] = rs.getString("Fecha");
                registro[2] = rs.getString("Codproducto");
                registro[3] = rs.getString("Producto");
                registro[4] = rs.getString("Presentacion");               
                registro[5] = rs.getString("Unidad");
                registro[6] = rs.getString("Existencia");
                modelo3.addRow(registro);
            }
            //Se agregan los datos a la tabla
            tblTabla3.setModel(modelo3);
            //Posición de los registros de las columnas 3 y 4 del JTable a la derecha (RIGHT)
            DefaultTableCellRenderer tcr1 = new DefaultTableCellRenderer();
            tcr1.setHorizontalAlignment(SwingConstants.CENTER);
            tblTabla3.getColumnModel().getColumn(0).setCellRenderer(tcr1);       
            tblTabla3.getColumnModel().getColumn(1).setCellRenderer(tcr1); 
            tblTabla3.getColumnModel().getColumn(2).setCellRenderer(tcr1);       
            tblTabla3.getColumnModel().getColumn(3).setCellRenderer(tcr1);
            tblTabla3.getColumnModel().getColumn(4).setCellRenderer(tcr1);       
            tblTabla3.getColumnModel().getColumn(5).setCellRenderer(tcr1);
            tblTabla3.getColumnModel().getColumn(6).setCellRenderer(tcr1);
            int[] anchos ={8,10,10,400,10,5,10};
            for (int i = 0; i < tblTabla3.getColumnCount(); i++) {
                tblTabla3.getColumnModel().getColumn(i).setPreferredWidth(anchos);
            }
            TableRowSorter<TableModel> elQueOrdena = new TableRowSorter<TableModel>(modelo3);        // 2 de 3 líneas para ordenar la tabla
            tblTabla3.setRowSorter(elQueOrdena);                                                       // 3 de 3 líneas para ordenar la tabla
            rs.close();
        }
        catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, ex);
        }
        PreparedStatement st = null;
        ResultSet rs = null;
    }

Gracias anticipadas y haber si me dais alguna luz para solventarlo.

 

ey