Tentando Criar uma Abstract Table, mas algo esta errado! oq?

Estou tentando novamente, mas estou com muita dificuldade!
Não esta aparecendo a table com os dados do Banco!
[size=24]
CODIGO COMPLETO ABAIXO![/size]

Anexei o projeto!

Quando postar código, favor usar a tag [code]

Ok!

posta tb qual erro esta dando e em qual linha, assim fica complicado. se possivel poste tb a parte relevante do stack trace

Yuri ja criei a table model,DAO, agora estou com dificuldade de criar modelTest com JFrame, pois quando executo não aparece os dados do BD!

Como faço um Jframe, sendo que o comando Sql fica DAO?

Database com var nome,genero, ja colcoquei os valores com inserts, mas não aparace esses valores na table!

aparentemente falta vc setar o seu table model na sua JTable. use o metodo setModel da JTable, se isso n funcionar (ou se vc ja tiver feito isso e eu n vi) coloca o stack trace do erro.

Yuri ,estou quase conseguindo!

aparece as duas colunas no caso Nome e Genero!

Mas não aparece, os dados de tem no Banco de dados!

Acho que o problema seja com a conexão, o problema é a onde!?

Estou tentando novamente, mas estou com muita dificuldade!
Não esta aparecendo a table com os dados do Banco!
[size=18]
Codigo completo![/size]

[code]----------------------------CLASSE INICIAL LIVROS-----------------------------------------------------
public class Livros {

private String nome;
private String genero;
}
//com sets e gets
--------------------------------------------classe LivroDAO ------------------------------------------------------------------
package DAO;
import Inicial.Livros;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class LivroDAO {
private Connection conn;
public LivroDAO(){
this.conn = new ConexaoBD().getConnection();

}  
 public List<Livros> Lsta() throws SQLException{  
     List<Livros> bok = new ArrayList<Livros>();
  String sql = " select * from livros";
    try {  
       PreparedStatement stmt = this.conn.prepareStatement(sql);  
          
        ResultSet rs = stmt.executeQuery();  
        
        while (rs.next()){
            Livros book = new Livros();
            book.setNome(rs.getString("nome"));
            book.setGenero(rs.getString("genero"));
        }
        rs.close();
        stmt.close();
       
    }  catch ( Error e ){
        throw new RuntimeException(e);
    }
    return bok;
    
}  

}
--------------------------------------------------------class ConexaoBD-----------------------------------------------------------------
package DAO;

import java.sql.*;

public class ConexaoBD {
private static final String URL_MYSQL = “jdbc:mysql://localhost/loja”;
private static final String DRIVER_CLASS_MYSQL = “com.mysql.jdbc.Driver”;
private static final String USER = “root”;
private static final String PASS = “”;

public static Connection getConnection() {
    System.out.println("Conectando ao Banco de Dados");
    try {
        Class.forName(DRIVER_CLASS_MYSQL);
        return DriverManager.getConnection(URL_MYSQL, USER, PASS);
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    } catch (SQLException e) {
        throw new RuntimeException(e);
    }
    return null;
}

public static void close(Connection conn, PreparedStatement stmt, ResultSet rs) {
    try {
        if (conn!= null) {
            conn.close();
        }

        if (stmt!= null) {
            stmt.close();
        }

        if (rs!= null) {
            rs.close();
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

--------------------------------------------------class LivroModel---------------------------------------------------------------
package Inicial;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import javax.swing.table.AbstractTableModel;

public class LivroModel extends AbstractTableModel{
private final int COL_NOME = 0;
private final int COL_GEN = 1;
private List linhas;
private String[] colunas = new String[]{“Nome”,“Genero”};

public LivroModel(){
linhas = new ArrayList();
}

public LivroModel(Collection listaDeLivros){
this.linhas = new ArrayList(listaDeLivros);
}

public void setLinhas(List linhas){
this.linhas = linhas;
}
@Override
public int getRowCount() {
return linhas.size();
}

@Override
public int getColumnCount() {
  return colunas.length;
}

@Override
public String getColumnName(int columnIndex) {
if(columnIndex == COL_NOME){
return “Nome”;
}if (columnIndex == COL_GEN){
return “Genero”;
}
return colunas[columnIndex];
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
Livros livro = linhas.get(rowIndex);
switch (columnIndex){
case 0:
return livro.getNome();
case 1:
return livro.getGenero();
default:
throw new IndexOutOfBoundsException(“columnIndex out of bounds”);
}
}

      @Override
      public void setValueAt(Object aValue, int rowIndex, int columnIndex) {};

@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
	return false;
}
   public Livros getLivro(int indiceLinha){
       return linhas.get(indiceLinha);
   }
   public void addLivro(Livros liv){
       linhas.add(liv);
       int ultimoIndice = getRowCount()- 1;
       fireTableRowsInserted(ultimoIndice, ultimoIndice);
   }
   public void removeSocio(int indiceLinha) {
	linhas.remove(indiceLinha);

            fireTableRowsDeleted(indiceLinha, indiceLinha);
}

public void addListaDeSocios(List<Livros> livro) {

	int tamanhoAntigo = getRowCount();

	linhas.addAll(livro);

	fireTableRowsInserted(tamanhoAntigo, getRowCount() - 1);
}
public void limpar() {
	
	linhas.clear();

	fireTableDataChanged();
}
public boolean isEmpty() {
	return linhas.isEmpty();
}

}
-----------------------------------------------CLASSE LIVROTESTE----------------------------------------------------------------------
package Inicial;

import java.awt.BorderLayout;
import java.util.List;
import javax.swing.JFrame;

public class LivroTest extends javax.swing.JFrame {
public List livrosLis;
private static LivroModel mod;
LivroModel model = new LivroModel();

public LivroTest() {
    try{

// super(“Teste”);
initComponents();
model = new LivroModel();
jTable1.setModel(model);

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
    }catch (Exception e){
        e.printStackTrace();
                
    }
  
}

@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">                          
private void initComponents() {

    jScrollPane1 = new javax.swing.JScrollPane();
    jTable1 = new javax.swing.JTable();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

    jTable1.setModel(new javax.swing.table.DefaultTableModel(
        new Object [][] {
            {null, null, null, null},
            {null, null, null, null},
            {null, null, null, null},
            {null, null, null, null}
        },
        new String [] {
            "Title 1", "Title 2", "Title 3", "Title 4"
        }
    ));
    jScrollPane1.setViewportView(jTable1);

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addContainerGap()
            .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addContainerGap(15, Short.MAX_VALUE))
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addContainerGap()
            .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 275, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addContainerGap(14, Short.MAX_VALUE))
    );

    pack();
}// </editor-fold>                        

/**
 * @param args the command line arguments
 */
public static void main(String args[]) {
    /* Set the Nimbus look and feel */
    //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
    /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
     * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
     */
    try {
        for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
            if ("Nimbus".equals(info.getName())) {
                javax.swing.UIManager.setLookAndFeel(info.getClassName());
                break;
            }
        }
    } catch (ClassNotFoundException ex) {
        java.util.logging.Logger.getLogger(LivroTest.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (InstantiationException ex) {
        java.util.logging.Logger.getLogger(LivroTest.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (IllegalAccessException ex) {
        java.util.logging.Logger.getLogger(LivroTest.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (javax.swing.UnsupportedLookAndFeelException ex) {
        java.util.logging.Logger.getLogger(LivroTest.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    }
    //</editor-fold>

    /* Create and display the form */
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new LivroTest().setVisible(true);
        }
    });
}
// Variables declaration - do not modify                     
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
// End of variables declaration                   

}[/code]

agora vc setou o modelo mas n colocou nenhum Livro nela cara, ou vc passa uma Collection de Livro na hora de instanciar ou vc usa o seu metodo setLinhas… isso é código que você mesmo escreveu cara (deveria ser) tenta se esforçar mais, como vc espera que sejam exibidas as informações se vc n está enviando nenhuma? se alguem te passou esse código vc n deveria estar usando sem antes ter entendido 100% e pelas perguntas fica bem claro que você não entende o que nada disso faz. Para seu próprio bem, não faça isso. E se fosse em um emprego onde sua imagem está em jogo e vc n sabe o q o código ta fazendo? se vier pedir ajuda no forum tem sempre a chance de ninguem te ajudar, pense nisso cara… vale mesmo a pena colocar o codigo pra funcionar agora se da proxima vez que você passar pelo mesmo problema vai ser o mesmo sufoco?

Obrigado Yuri, esse assunto é muito complicado mesmo!