Encabezado JTable no se muestra

JTable encabezado no se muestra ...

Mi encabezado JTable no se mostrará incluso si lo agrego a un contenedor como JScrollPane ... dime por qué sucedió y cómo puedo arreglarlo o depurarlo ... Busco en Internet y todo lo que dicen es agregar contenedor a tu jtable, i Lo hice pero aun así mi cabecera no se muestra.

public void table(){

try{

        rs = stat.executeQuery("SELECT * FROM payments;");

        Vector<String> header = new Vector<String>();

        header.add("PAYMENT"); 
        header.add("AMOUNT");
        header.add("MODIFIER");
        header.add("DATE MODIFIED");

        Vector<Vector<Object>> data = new  Vector<Vector<Object>>();

        while(rs.next()) {

            Vector<Object> row = new Vector<Object>();

            row.add(rs.getString("description"));
            row.add(rs.getString("amount")); 
            row.add(rs.getString("remarks")); 
            row.add(rs.getString("date"));


            data.add(row);

        } // loop

        table = new JTable(data, header);

        JScrollPane scrollPane = new JScrollPane(table);

        panel.add(table);
        panel.add(table.getTableHeader());
        //panel.removeAll();
        //scroll.add(table);
        validate();

    }catch(Exception e){
        System.out.println("Error in table: "+e);
    }//try and catch

}

Respuestas a la pregunta(2)

Su respuesta a la pregunta