El registro no se carga desde la base de datos en JTable java netbeans

Estoy tratando de mostrar los registros en JTable cuando se carga el marco, pero los registros no se muestran. Esto es lo que he intentado hasta ahora: public void load () {

    try {
        Connection con1;
        PreparedStatement insert;
        Class.forName("com.mysql.jdbc.Driver");
        con1 = DriverManager.getConnection("jdbc:mysql://localhost/javapos","root","");
        insert = con1.prepareStatement("SELECT name,status FROM category");
        ResultSet Rs = insert.executeQuery();
        while(Rs.next()){
            DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
            String name = Rs.getString("name");
            String status = Rs.getString("status");                 
            model.addRow(new Object[]{name,status });                               
        }
       jTable1.setModel(model);                       
    } catch (Exception e) {

          System.out.println("Failed " + e);

    }             
}
Respuesta 1

Supongo que ya que su código no debe compilarse, pero parece que (está viendo un vacío JTabledespués de todo).

Has declarado un DefaultTableModel modelantes del fragmento.

¿Cómo sé eso? Con el código que propuso jTable1.setModel(model);no se puede compilar porque modelno existe en el ámbito (fuera del bucle).

while(Rs.next()){
    DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
    String name = Rs.getString("name");
    String status = Rs.getString("status");                 
    model.addRow(new Object[]{name,status });                               
}
jTable1.setModel(model); 

Error de compilación :

"modelo" no se puede resolver a una variable.

Supongo que lo has declarado en algún lugar antes. En el bucle, declara uno nuevo en un ámbito diferente, ocultando el original. En esta última modelinstancia, inserta tus filas.
Pero después del bucle, establece los primeros modelque no tienen fila en el jtable.

Un ejemplo básico de lo que está sucediendo, aquí cambiaré el nombre de ambas instancias pero en su código, model1y model2se nombrarán model.

model1 = new Model();
while(rs.next()){
    model2 = new Model();
    model2.addRow(...);
}
table.setModel(model1);

Corrección rápida, elimine la declaración en el bucle.

DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
while(Rs.next()){
    //DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
    String name = Rs.getString("name");
    String status = Rs.getString("status");                 
    model.addRow(new Object[]{name,status });                               
}
jtable1.setModel(model);

Declarar uno TableModel

Respuesta: 2

Le sugiero que haga una matriz bidimensional separada y después de recuperar los datos de la base de datos guarde esos datos en esa matriz bidimensional y luego puede asignar esa matriz bidimensional al modelo Jtable.

Respuesta: 3

He creado un software que genera un pdf como parte de su función, estoy usando la biblioteca iTextPDF Java para generar PDF. Para una versión demo de mi software, agregué marcas de agua de texto (como "demo ...

Resumen ¿Cómo se obtiene la sesión de un cliente de servicios web que utiliza servicios web de Spring y Spring Security? Detalles después de enviar <form method = "POST" action = "<c: url value =" / ...

Mi pregunta es esencialmente una duda sobre la recursividad. Estaba resolviendo el clásico problema transversal DFS "Rata en un laberinto". Mi entrada fue una matriz n * n int a [] [] donde para los índices i y j, a [i] [j] podría ...

Tengo un archivo xml creado con xmloutputter. En la primera vez que se crea, me crea el encabezado, pero luego agrego información, no lo haría. ¿Cómo puedo omitirlo? EDITAR elemento ...