problemas con Jtable
    
		    Holas a todos, bueno estoy haciendo un pequeño proyecto con bases de datos y java, pero tengo un par de problemillas, lo primero es que cuando inserto un dato nuevo en mi JTable no puedo actualizar la tabla ese mismo instante, pero cuando hago correr de nuevo el programa me muestra los datos actualizados, el otro problemilla que tengo es que cuando inicio el programa siempre me omite la primera fila de datos que me devuelve mi base de datos (revise si es que recibo todos los datos de mi BD en mi programa y si los recibo en un arreglo bidimensional,  respuestaBD[][]), bueno acontinuacion les mando algunas partes del codigo que manejo(me olvidaba estoy trabajando con mysql 4.0.21).
//metodo para update, insert y delete en mi BD
import java.sql.*;
public class base
{
//mas lineas de codigo conexion y otros metodos
void conexionBD();
public String[][] consultaSQLstr(String consulta);
public boolean actualizarSQL(String consulta)
{
  
try{
stmt = con.createStatement();
stmt.executeUpdate(consulta);
con.commit();
stmt.close();
return true;
}
catch (Exception e)
{System.out.println("error en actualizarSQL "+e.getMessage());
return false;
}
}
}
//aqui es donde creo la tabla y la añado al panel
public class Usuario extends JPanel implements ActionListener
{
String consulta1
String [][] dato1;
base b;
// mas lineas de codigo (paneles, botones, etiquetas)
consulta1 ="Select ID_USUARIO, LOGIN, TIPOUSUARIO from USUARIO;";
String[] titulo1 ={"Carnet de Identidad", "Login" , "Cargo"};
dato1 =b.consultaSQLstr(consulta1);
tablaIngreso=new JTabla(dato1,titulo1);
tablaIngreso.setTitulo("USUARIOS");
panelControl.add(tablaIngreso,BorderLayout.CENTER);
panelControl.add(panelBoton,BorderLayout.EAST);
}
//tengo una instancia de la clase JTable llamada JTabla
import javax.swing.*;
import java.awt.*;
import javax.swing.event.*;
import java.util.Vector;
public class JTabla extends JPanel
{private Object[][] dato;
private String[] titulo;
private int numeroFilas;
private int numeroColumnas;
private JTable tabla;
private JScrollPane scrollPanel;
private String cod;
private javax.swing.table.DefaultTableModel modeloTabla;
public JTabla(Object[][] d, String[] t)
{setLayout(new BorderLayout());
dato = d;
titulo = t;
scrollPanel = new JScrollPane();
tabla = new JTable();
tabla.setOpaque(false);
setOpaque(false);
modeloTabla = new javax.swing.table.DefaultTableModel( d ,t)
{int totalColumna;
public boolean isCellEditable(int fila, int columna)
{if (columna <= tabla.getColumnCount())
{return false;}
else
{return true;}
}
};
tabla.setModel(modeloTabla);
tabla.setEditingColumn(tabla.getColumnCount());
scrollPanel.setViewportView(tabla);
scrollPanel.setOpaque(false);
add(scrollPanel,BorderLayout.CENTER);
}
		
protected String getNombreColumna(int col)
{return titulo[col];}
        		            
protected String getValor( int fila,int columna)
{return (""+tabla.getValueAt(fila,columna));}
                
protected void setValor(Object valor, int fila, int columna)
{tabla.setValueAt( valor, fila, columna);}
protected void setAtributos(Object d[][], String t[])
{modeloTabla.setDataVector(d,t);
tabla.setModel(modeloTabla);}
     	     	
protected void setAtributos(Object d[][])
{modeloTabla.setDataVector( d, titulo);
tabla.setModel(modeloTabla);}
    	
protected void setTitulo(String t)
{setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),t));}
    	  		
public JTable getTabla()
{return tabla;}
protected void annadirFila(Object[] datoFila)
{modeloTabla.addRow(datoFila);
tabla.setModel(modeloTabla);}
   	
protected void insertarFila(int fila, Object[] dato)
{modeloTabla.insertRow(fila,dato);
tabla.setModel(modeloTabla);}
   	
protected void quitarFila(int fila)
{modeloTabla.removeRow(fila);
tabla.setModel(modeloTabla);}
   		
public void setDato(Object[][] dat)
{setAtributos(dat);}
   		
public int getNumeroFilas()
{return tabla.getRowCount();}
		   		   	    	
}
no se si alguien me podria ayudar a con la actualizacion de la tabla y porque al momento que creo mi JTabla no incluye la primera fila, bueno de antemano muchas gracias por darse la molestia de leerlo
	    
    //metodo para update, insert y delete en mi BD
import java.sql.*;
public class base
{
//mas lineas de codigo conexion y otros metodos
void conexionBD();
public String[][] consultaSQLstr(String consulta);
public boolean actualizarSQL(String consulta)
{
try{
stmt = con.createStatement();
stmt.executeUpdate(consulta);
con.commit();
stmt.close();
return true;
}
catch (Exception e)
{System.out.println("error en actualizarSQL "+e.getMessage());
return false;
}
}
}
//aqui es donde creo la tabla y la añado al panel
public class Usuario extends JPanel implements ActionListener
{
String consulta1
String [][] dato1;
base b;
// mas lineas de codigo (paneles, botones, etiquetas)
consulta1 ="Select ID_USUARIO, LOGIN, TIPOUSUARIO from USUARIO;";
String[] titulo1 ={"Carnet de Identidad", "Login" , "Cargo"};
dato1 =b.consultaSQLstr(consulta1);
tablaIngreso=new JTabla(dato1,titulo1);
tablaIngreso.setTitulo("USUARIOS");
panelControl.add(tablaIngreso,BorderLayout.CENTER);
panelControl.add(panelBoton,BorderLayout.EAST);
}
//tengo una instancia de la clase JTable llamada JTabla
import javax.swing.*;
import java.awt.*;
import javax.swing.event.*;
import java.util.Vector;
public class JTabla extends JPanel
{private Object[][] dato;
private String[] titulo;
private int numeroFilas;
private int numeroColumnas;
private JTable tabla;
private JScrollPane scrollPanel;
private String cod;
private javax.swing.table.DefaultTableModel modeloTabla;
public JTabla(Object[][] d, String[] t)
{setLayout(new BorderLayout());
dato = d;
titulo = t;
scrollPanel = new JScrollPane();
tabla = new JTable();
tabla.setOpaque(false);
setOpaque(false);
modeloTabla = new javax.swing.table.DefaultTableModel( d ,t)
{int totalColumna;
public boolean isCellEditable(int fila, int columna)
{if (columna <= tabla.getColumnCount())
{return false;}
else
{return true;}
}
};
tabla.setModel(modeloTabla);
tabla.setEditingColumn(tabla.getColumnCount());
scrollPanel.setViewportView(tabla);
scrollPanel.setOpaque(false);
add(scrollPanel,BorderLayout.CENTER);
}
protected String getNombreColumna(int col)
{return titulo[col];}
protected String getValor( int fila,int columna)
{return (""+tabla.getValueAt(fila,columna));}
protected void setValor(Object valor, int fila, int columna)
{tabla.setValueAt( valor, fila, columna);}
protected void setAtributos(Object d[][], String t[])
{modeloTabla.setDataVector(d,t);
tabla.setModel(modeloTabla);}
protected void setAtributos(Object d[][])
{modeloTabla.setDataVector( d, titulo);
tabla.setModel(modeloTabla);}
protected void setTitulo(String t)
{setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),t));}
public JTable getTabla()
{return tabla;}
protected void annadirFila(Object[] datoFila)
{modeloTabla.addRow(datoFila);
tabla.setModel(modeloTabla);}
protected void insertarFila(int fila, Object[] dato)
{modeloTabla.insertRow(fila,dato);
tabla.setModel(modeloTabla);}
protected void quitarFila(int fila)
{modeloTabla.removeRow(fila);
tabla.setModel(modeloTabla);}
public void setDato(Object[][] dat)
{setAtributos(dat);}
public int getNumeroFilas()
{return tabla.getRowCount();}
}
no se si alguien me podria ayudar a con la actualizacion de la tabla y porque al momento que creo mi JTabla no incluye la primera fila, bueno de antemano muchas gracias por darse la molestia de leerlo
		    Para tu problema de la actualizacion de los datos se me ocurre que puedes hacer una llamada al metodo  repaint del frame que contiene la tabla justo despues de realizar la modificacion. 
	    
    