es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La tabla no muestra todos los datos de la base de datos.

En mi proyecto Java, estoy utilizando el panel de diseño JFrame Form para crear una JTable y mostrar los datos de una base de datos MySQL.

El problema es que la tabla no muestra todas las filas de la base de datos. De hecho, solo muestra 5 filas. No sé si debo cambiar alguna propiedad de la tabla.

tablaUno.setModel(new javax.swing.table.DefaultTableModel(
    new Object [][] {
        {null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null}
    },
    new String [] {
        "RUT", "Nombre", "Apellido", "Edad", "Cargo", "Sexo", "Extrangero"
    }
));
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    En primer lugar, parece que se está utilizando el constructor DefaultTableModel para crear una tabla con 15 filas vacías y 7 columnas, en lugar de obtener los datos de la base de datos.

    Para mostrar datos de una base de datos MySQL en un JTable, es necesario obtener los datos utilizando un ResultSet y luego llenar el DefaultTableModel con los datos. Aquí tienes un ejemplo de un fragmento de código:

    // Suponiendo que ya has establecido una conexión a la base de datos MySQL
    String consulta = "SELECT * FROM mi_tabla"; // Reemplaza con el nombre real de tu tabla
    PreparedStatement statement = connection.prepareStatement(consulta);
    ResultSet resultado = statement.executeQuery();
    
    // Crea un DefaultTableModel con los nombres de columna
    String[] nombresColumna = {"RUT", "Nombre", "Apellido", "Edad", "Cargo", "Sexo", "Extranjero"};
    DefaultTableModel modelo = new DefaultTableModel(nombresColumna, 0);
    
    // Agrega filas al modelo de tabla utilizando el ResultSet
    while (resultado.next()) {
        String rut = resultado.getString("nombre_columna_rut"); // Reemplaza con el nombre real de la columna
        String nombre = resultado.getString("nombre_columna_nombre");
        String apellido = resultado.getString("nombre_columna_apellido");
        int edad = resultado.getInt("nombre_columna_edad");
        String cargo = resultado.getString("nombre_columna_cargo");
        String sexo = resultado.getString("nombre_columna_sexo");
        boolean extranjero = resultado.getBoolean("nombre_columna_extranjero");
    
        Object[] datosFila = {rut, nombre, apellido, edad, cargo, sexo, extranjero};
        modelo.addRow(datosFila);
    }
    
    // Asigna el modelo de tabla a tu JTable
    tablaUno.setModel(modelo);
    

    Asegúrate de reemplazar los nombres de columnas y la tabla con los nombres reales. Además, ten en cuenta que el código anterior asume que el JTable se llama tablaUno.

    Esto solucionará el problema de que la tabla no muestra todas las filas de la base de datos. Si todavía tienes problemas, es posible que desees revisar la consulta MySQL que estás utilizando para obtener los datos, así como las propiedades de la tabla (como la altura de las filas o la política de desplazamiento) que podrían afectar la visualización.

Comments are closed.