ahora, estuve navegando por la red, buscando comprender como re-fillear o recargar la tabla para que simule una conexion en tiempo real. extraigo datos de una basede datos de SQL y tambien una de MYSQL. entonces necesito saber bien que onda. les dejo la clase donde se realiza la mayor parte del trabajo, tambien tengo otra. donde se llena el resultset, y el main.
pueden ayudarme para poder realizar el refill??
Código
JScrollPane scroll; modelo model; JTable tabla; final String[] combstatus = { "Factura Firmada", "Faltante", "Factura sin firma", "Contra recibo","Cheque sin fondos" }; final String[] combresp = { "José Manuel Gomez Garza", "María Esperanza Tavarez", "Ubaldo de Jesús Robledo Muñoz", "Juan Martin Palacios Manrique" }; boolean valor=false; final String[] combfil1 = { "Clave Clie", "Nombre Clie", "Tipo Doc", "Estado", "Sucursal", "Responsable" }; final String[] combfil2 = { "Clave Clie", "Nombre Clie", "Tipo Doc", "Estado", "Sucursal", "Responsable" }; final String[] combfil3 = { "Clave Clie", "Nombre Clie", "Tipo Doc", "Estado", "Sucursal", "Responsable" }; JPanel panelfil; JButton guardar; JButton refrescar; JButton filtrar; JLabel etiqueta1; int rowtabla; int coltabla; TableRowSorter<modelo> sorter; String sqlcon="SELECT V.CVE_CLIE, V.NOMBRE, V.DESCR as ID_MOV,V.REFER, CONVERT(CHAR(10), M.FECHAELAB,101) AS FECHAELAB,\n" + "CAST(CONVERT(VARCHAR, CAST((M.IMPORTE * M.SIGNO) + (ISNULL(V.SALDO, 0.00)) AS MONEY),1) AS VARCHAR) AS SALDO \n" + "FROM PRUEBADOS V LEFT JOIN Interfaz.dbo.CUEN_M03 M ON V.REFER = M.REFER AND V.CVE_CLIE = M.CVE_CLIE \n" + "WHERE ((M.IMPORTE * M.SIGNO) + (ISNULL(V.SALDO, 0.00))) > 1 OR ((M.IMPORTE * M.SIGNO)+ (ISNULL(V.SALDO, 0.00))) < -1 "; DefaultCellEditor calen; public Uno(){ super ("Cuentas por pagar"); model = new modelo(); rowtabla=tabla.getRowCount(); coltabla=tabla.getColumnCount(); tabla.setAutoCreateRowSorter(true); tabla.getColumnModel().getColumn(5).setCellRenderer(tcr); sorter = new TableRowSorter<modelo>(model); tabla.setRowSorter(sorter); //tabla.updateUI(); tabla.getColumnModel().getColumn(6).setCellEditor(dcestatus); this.getContentPane().add(scroll); //sucursal tabla.getColumnModel().getColumn(9).setCellEditor(dcesuc); this.getContentPane().add(scroll); //responsable tabla.getColumnModel().getColumn(10).setCellEditor(dceresp); this.getContentPane().add(scroll); tabla.getColumnModel().getColumn(0).setPreferredWidth(40); tabla.getColumnModel().getColumn(1).setPreferredWidth(250); tabla.getColumnModel().getColumn(2).setPreferredWidth(40); tabla.getColumnModel().getColumn(3).setPreferredWidth(45); tabla.getColumnModel().getColumn(4).setPreferredWidth(55); tabla.getColumnModel().getColumn(5).setPreferredWidth(70); tabla.getColumnModel().getColumn(6).setPreferredWidth(80); tabla.getColumnModel().getColumn(7).setPreferredWidth(180); tabla.getColumnModel().getColumn(8).setPreferredWidth(80); tabla.getColumnModel().getColumn(9).setPreferredWidth(55); tabla.getColumnModel().getColumn(10).setPreferredWidth(180); tabla.getColumnModel().getColumn(11).setPreferredWidth(5); tabla.setRowHeight(15); guardarActionPerformed(evt); } }); celdaclick(e); } }); filtrarActionPerformed(evt); } }); refrescarActionPerformed(evt); } }); // setDefaultCloseOperation(DISPOSE_ON_CLOSE); } }); /* aqui va el codigo generado por Netbeans para el acomodo del swing en el Jframe*/ } public int getColumnCount() { return columnas.length; } //retormanos el numero de elementos //del array de datos public int getRowCount() { return datos.length; } //retornamos el elemento indicado return columnas[col]; } //y lo mismo para las celdas return datos[row][col]; } /* * Este metodo sirve para determinar el editor predeterminado * para cada columna de celdas */ public Class getColumnClass(int c) { return columns[c]; } public boolean isCellEditable(int row, int col) { boolean isEditable = true; isEditable = false; if (col >= 0 && col <= 11) { isEditable = true; } } else { isEditable=false; } return isEditable; } datos[row][col] = value; fireTableCellUpdated(row, col); } } return columna; } return fila; } try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); String url= "jdbc:sqlserver://127.0.0.1:1433;databaseName=Interfaz;user=SISTEMAS;password=administrador;"; st.close(); rs.close(); conexion.close(); return arr; } JOptionPane.showMessageDialog(null,ex, "Error 1 en la conexion"+ex.getMessage(),JOptionPane.ERROR_MESSAGE); conexion=null; } JOptionPane.showMessageDialog(null,ex, "Error 2 en la Conexión"+ex.getMessage(),JOptionPane.ERROR_MESSAGE); conexion=null; } JOptionPane.showMessageDialog(null, ex, "Error3 en la Conexión con la BD "+ex.getMessage(), JOptionPane.ERROR_MESSAGE); conexion=null ; } return null; } int cols = 0; int rows = 0; int x=0; int movi=0; try{ rs.last(); int ncols = rsmd.getColumnCount(); int nfils = rs.getRow(); cols=ncols; rows=nfils; int j = 0; rs.beforeFirst(); while (rs.next()){ for (int i=0;i<ncols;i++){ sfila[j][i]=rs.getObject(i+1); if (i==0){ sfila[j][0]=rs.getString(i+1); } } j++; } } } Dos mysql = new Dos(); mysql.conec(sfila); return sfila; } JCalendar calendario; JTextField fecha; JButton confirmar; JButton cancelar; JDialog dlg; String date; String anio; String mes; String dia; JCalendar dp; { int row = target.getSelectedRow(); int column = target.getSelectedColumn(); int status=0; confirmar.addActionListener(this); cancelar.addActionListener(this); if (column==8) { // JOptionPane.showMessageDialog(null,fechaAnt); dlg.setTitle(null); dlg.setVisible(false); } }); dp = new JCalendar(); date = format1.format(dp.getDate()); calpancal.add(dp); calpanbut.add(confirmar); calpanbut.add(cancelar); calpan.add(calpancal); calpan.add(calpanbut); dlg.getContentPane().add(calpan); dlg.pack(); dlg.setVisible(true); if (fechaAnt==(null)){ if(fechaNue==null){ tabla.setValueAt(fechaNue,row,column); }else{ tabla.setValueAt(fechaNue,row,column); } }else if(fechaAnt!=null){ if (fechaNue==null){ tabla.setValueAt(fechaAnt, row, column); }else{ tabla.setValueAt(fechaNue, row, column); } } } } } if (e.getSource()==confirmar) { if (dia.length()==1){ dia="0"+dia; } if(mes.length()==1){ mes="0"+mes; } date = ""+dia+"/"+mes+"/"+anio; dlg.setTitle(date); dlg.setVisible(false); } if (e.getSource()==cancelar) { dlg.setTitle(null); dlg.setVisible(false); } } /*cuando apriete el boton que genere este listener es donde queiro actualizar lka tabla, volverla a cargar*/ } Dos insertar = new Dos(); try { insertar.insertar(tabla, rowtabla, coltabla); } Logger.getLogger(Uno.class.getName()).log(Level.SEVERE, null, ex); } } int comb1=0; int comb2=0; int comb3=0; switch (combofil1.getSelectedIndex()){ case 0: comb1=0; break; case 1: comb1=1; break; case 2: comb1=2; break; case 3: comb1=6; break; case 4: comb1=9; break; case 5: comb1=10; break; } switch (combofil2.getSelectedIndex()){ case 0: comb2=0; break; case 1: comb2=1; break; case 2: comb2=2; break; case 3: comb2=6; break; case 4: comb2=9; break; case 5: comb2=10; break; } switch (combofil3.getSelectedIndex()){ case 0: comb3=0; break; case 1: comb3=1; break; case 2: comb3=2; break; case 3: comb3=6; break; case 4: comb3=9; break; case 5: comb3=10; break; } RowFilter<modelo, Object> multiFiltro = null; RowFilter<modelo, Object> primerFiltro = null; RowFilter<modelo, Object> segundoFiltro = null; RowFilter<modelo, Object> tercerFiltro = null; ArrayList<RowFilter<modelo,Object>> lista = new ArrayList<RowFilter<modelo,Object>>(); try{ primerFiltro = RowFilter.regexFilter("(?i)"+filtro1.getText(), comb1); segundoFiltro=RowFilter.regexFilter("(?i)"+filtro2.getText(), comb2); tercerFiltro=RowFilter.regexFilter("(?i)"+filtro3.getText(), comb3); lista.add(primerFiltro); lista.add(segundoFiltro); lista.add(tercerFiltro); multiFiltro = RowFilter.andFilter(lista); }catch(java.util.regex.PatternSyntaxException ex) { return; } sorter.setRowFilter(multiFiltro); } }