Boa Tarde pessoal, estou com várias dúvidas em relação ao jTable, estou fazendo um programa pra trabalhar com banco de dados, só preciso aprender a usar o jTable pra “finalizar” esse meu programa. Ele é bem simples, é um CRUD no banco de dados, estou usando o Hibernate, já está fazendo o CRUD tranquilo no banco, mas na hora de listar os dados eu não sei como fazer. Esse código foi gerado com o netbeans, fiz as actions com os botões, se alguém puder ajudar eu agradeço.
import org.hibernate.Session;
public class Janela extends javax.swing.JFrame {
/** Creates new form Janela */
public Janela() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
Nome = new javax.swing.JLabel();
Numero = new javax.swing.JLabel();
digitaNome = new javax.swing.JTextField();
digitaNumero = new javax.swing.JTextField();
jScrollPane1 = new javax.swing.JScrollPane();
Tabela = new javax.swing.JTable();
Adicionar = new javax.swing.JButton();
Remover = new javax.swing.JButton();
Editar = new javax.swing.JButton();
Pesquisar = new javax.swing.JButton();
Listar = new javax.swing.JButton();
Sair = new javax.swing.JButton();
mostraErro1 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
Nome.setText("Nome:");
Nome.setName("Nome"); // NOI18N
Numero.setText("Numero:");
Numero.setName("Numero"); // NOI18N
digitaNome.setName("digitaNome"); // NOI18N
digitaNumero.setName("digitaNumero"); // NOI18N
jScrollPane1.setName("jScrollPane1"); // NOI18N
Tabela.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}
},
new String [] {
"Nome", "Numero"
}
) {
Class[] types = new Class [] {
java.lang.String.class, java.lang.String.class
};
boolean[] canEdit = new boolean [] {
false, false
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
Tabela.setName("Tabela"); // NOI18N
jScrollPane1.setViewportView(Tabela);
org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance().getContext().getResourceMap(Janela.class);
Tabela.getColumnModel().getColumn(0).setResizable(false);
Tabela.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("colunaNome")); // NOI18N
Tabela.getColumnModel().getColumn(1).setResizable(false);
Tabela.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("colunaNumero")); // NOI18N
Adicionar.setText("Adicionar");
Adicionar.setName("Adicionar"); // NOI18N
Adicionar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
AdicionarActionPerformed(evt);
}
});
Remover.setText("Remover");
Remover.setName("Remover"); // NOI18N
Remover.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
RemoverActionPerformed(evt);
}
});
Editar.setText("Editar");
Editar.setName("Editar"); // NOI18N
Editar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
EditarActionPerformed(evt);
}
});
Pesquisar.setText("Pesquisar");
Pesquisar.setName("Pesquisar"); // NOI18N
Pesquisar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
PesquisarActionPerformed(evt);
}
});
Listar.setText("Listar");
Listar.setName("Listar"); // NOI18N
Listar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ListarActionPerformed(evt);
}
});
Sair.setText("Sair");
Sair.setName("Sair"); // NOI18N
Sair.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
SairActionPerformed(evt);
}
});
mostraErro1.setForeground(new java.awt.Color(255, 0, 0));
mostraErro1.setName("mostraErro1"); // NOI18N
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()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 421, Short.MAX_VALUE)
.addContainerGap())
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(Adicionar)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(Remover)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(Editar)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(Pesquisar)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(Listar, javax.swing.GroupLayout.DEFAULT_SIZE, 85, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(mostraErro1, javax.swing.GroupLayout.PREFERRED_SIZE, 395, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED))
.addGroup(layout.createSequentialGroup()
.addComponent(Numero)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(digitaNome, javax.swing.GroupLayout.DEFAULT_SIZE, 356, Short.MAX_VALUE)
.addComponent(digitaNumero, javax.swing.GroupLayout.DEFAULT_SIZE, 356, Short.MAX_VALUE)))
.addComponent(Nome))
.addGap(30, 30, 30))
.addComponent(Sair, javax.swing.GroupLayout.Alignment.TRAILING)))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(16, 16, 16)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(Nome)
.addComponent(digitaNome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(Numero)
.addComponent(digitaNumero, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(Adicionar)
.addComponent(Remover)
.addComponent(Editar)
.addComponent(Pesquisar)
.addComponent(Listar))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(mostraErro1, javax.swing.GroupLayout.PREFERRED_SIZE, 15, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(7, 7, 7)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 294, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(Sair))
);
pack();
}// </editor-fold>
private void AdicionarActionPerformed(java.awt.event.ActionEvent evt) {
Session session = new HibernatePessoa().getSession();
PessoaDAO dao = new PessoaDAO(session);
Pessoa pessoa = new Pessoa(digitaNome.getText(), digitaNumero.getText());
dao.salva(pessoa);
mostraErro1.setText("");
}
private void RemoverActionPerformed(java.awt.event.ActionEvent evt) {
Session session = new HibernatePessoa().getSession();
PessoaDAO pessoaDAO = new PessoaDAO(session);
String nome = digitaNome.getText();
String numero = digitaNumero.getText();
boolean achou = false;
for(Pessoa p : pessoaDAO.listaTudo()){
if(p.getNome().compareTo(nome) == 0 && p.getNumero().compareTo(numero) == 0){
pessoaDAO.remove(p);
achou = true;
}
mostraErro1.setText("");
}
if(!achou){
mostraErro1.setText("Pessoa Não Encontrada");
}
}
private void EditarActionPerformed(java.awt.event.ActionEvent evt) {
Session session = new HibernatePessoa().getSession();
PessoaDAO pessoaDAO = new PessoaDAO(session);
String nome = digitaNome.getText();
boolean achou = false;
for(Pessoa p : pessoaDAO.listaTudo()){
if(p.getNome().compareTo(nome) == 0){
p.setNumero(digitaNumero.getText());
pessoaDAO.atualiza(p);
achou = true;
}
mostraErro1.setText("");
}
if(!achou){
mostraErro1.setText("Pessoa Não Encontrada");
}
}
private void PesquisarActionPerformed(java.awt.event.ActionEvent evt) {
Session session = new HibernatePessoa().getSession();
PessoaDAO pessoaDAO = new PessoaDAO(session);
String nome = digitaNome.getText();
boolean achou = false;
for(Pessoa p : pessoaDAO.listaTudo()){
if(p.getNome().compareTo(nome) == 0){
System.out.println("Id: "+ p.getId());
System.out.println("Nome: "+ p.getNome());
System.out.println("Numero: "+ p.getNumero());
achou = true;
}
mostraErro1.setText("");
}
if(!achou){
mostraErro1.setText("Pessoa Não Encontrada");
}
}
private void ListarActionPerformed(java.awt.event.ActionEvent evt) {
}
private void SairActionPerformed(java.awt.event.ActionEvent evt) {
}
// Variables declaration - do not modify
private javax.swing.JButton Adicionar;
private javax.swing.JButton Editar;
private javax.swing.JButton Listar;
private javax.swing.JLabel Nome;
private javax.swing.JLabel Numero;
private javax.swing.JButton Pesquisar;
private javax.swing.JButton Remover;
private javax.swing.JButton Sair;
private javax.swing.JTable Tabela;
private javax.swing.JTextField digitaNome;
private javax.swing.JTextField digitaNumero;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JLabel mostraErro1;
// End of variables declaration
}
Explicando um pouco a estrutura da jTable.
Tenho duas colunas uma chamada Nome e outra Numero e tem 30 linhas, no bando de dados a estrutura é a mesma. Eu pego todos os dados do banco para uma list e queria imprimir na jTable.