JTable no muestra el encabezado de la tabla

Mi objetivo es mostrar datos de una base de datos usando JTable.

Código de referencia de: el código más simple para llenar JTable desde ResultSet

Modifiqué el código para adaptarme a mi situación. Tengo una clase TopicData con el siguiente método:

public DefaultTableModel buildTableModel(){
    //open connection
    ResultSet rs = null;
    Vector<String> columnNames = new Vector<String>();
    Vector<Vector<Object>> data = new Vector<Vector<Object>>();
    int columnCount = 0;
    DBController db = new DBController();
    db.setUp("myDatabase");
    String dbQuery = "SELECT topicName, topicDate, topicCategory, topicUser FROM topicTable ORDER BY topicDate";

    rs = db.readRequest(dbQuery);
    try{    
        ResultSetMetaData metaData = rs.getMetaData();

        // names of columns
        columnCount = metaData.getColumnCount();
        for (int column = 1; column <= columnCount; column++) {
            columnNames.add(metaData.getColumnName(column));

        }
        // data of the table 
        while (rs.next()) {
            Vector<Object> vector = new Vector<Object>();
            for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
                vector.add(rs.getObject(columnIndex));
            }
            data.add(vector);
        }
    } 
    catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    //close connection 
    db.terminate();

    return new DefaultTableModel(data, columnNames);

}

Y en otra clase TopicView:

private JTable getTable() {
    if (table == null) {
        TopicData topic= new TopicData();
        table = new JTable(topic.buildTableModel());
        table.setShowGrid(false);
        table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        table.setBounds(95, 59, 625, 357);
    }
    return table;
}

Me di cuenta de que mi tabla no tiene encabezados en la parte superior de cada columna. http://i.stack.imgur.com/FcnHb.png

Así que simplifiqué mi TopicData para solucionar problemas:

public DefaultTableModel testTableModel(){
    Vector<String> columnNames = new Vector<String>();
    columnNames.add("test1");
    columnNames.add("test1");
    columnNames.add("test1");
    Vector<Vector<Object>> data = new Vector<Vector<Object>>();
    Vector<Object>vector = new Vector<Object>();
    vector.add("test2");
    vector.add("test2");
    vector.add("test2");
    data.add(vector);

    return new DefaultTableModel(data, columnNames);
}

Una vez más, la tabla no tiene encabezados. La palabra "prueba1" no aparece en ninguna parte de la tabla, mientras que se muestran 3 columnas de "prueba2".

Estoy realmente perplejo por esto, cualquier ayuda sería apreciada.

Respuesta 1

Intento enviar un trabajo en Flink 1.4 y obtengo la siguiente excepción. ¿Alguna idea de cómo resolver el problema? Causado por: org.apache.flink.runtime.client.JobExecutionException: error en la ejecución del trabajo. a ...

Mi aplicación Flex llama correctamente a un servicio web pero no llena el cuadro desplegable. Una vez que ejecuto la aplicación, el cuadro desplegable está vacío. mi código flexible es el siguiente <fx: Script> ...

Obtuve un proyecto que todavía está diseñado para admitir Java 6. El siguiente código está dentro de un archivo jar creado con el nivel de cumplimiento del compilador 1.6. Ese archivo jar debe llamarse desde aplicaciones Java creadas para Java 6 o ...

Tengo algún problema para Android 7.0.0. Utilizo la biblioteca de volley para mi aplicación, y funciona bien, excepto para Android 7.0. Aquí está parte de mi código; String url_goster = "http://185.126.217.71/clog.php" ...