import java.awt.*;
import javax.swing.*;
import javax.swing.table.DefaultTableCellRenderer;
public class TelaConsulta extends JFrame{
Container tela = this.getContentPane();
JTable tabela;
JScrollPane scroll;
String colunas[] ={"NOME ","ENDEREÇO ","TELEFONE"};
String linhas[][] = {
{" "," "," "},
{" "," "," "},
{" "," "," "},
{" "," "," "},
{" "," "," "},
{" "," "," "},
{" "," "," "},
{" "," "," "},
{" "," "," "},
{" "," "," "},
{" "," "," "},
{" "," "," "},
{" "," "," "},
{" "," "," "},
{" "," "," "},
{" "," "," "},
{" "," "," "},
{" "," "," "},
{" "," "," "},
{" "," "," "}
};
public static void main (String[] args){
new TelaConsulta();
}
public TelaConsulta(){
setTitle("Consultas de alunos");
tabela = new JTable(linhas,colunas);
tela.setBackground(new Color(148,206,232));
tabela.getTableHeader().setBackground(new Color(0,255,64));
new DefaultTableCellRenderer(){
public Component getTableCellRendererComponent(
JTable table, Object value,boolean isSelected,
boolean hasFocus,int linha,int coluna){
super.getTableCellRendererComponent(table,value,
isSelected,hasFocus,linha,coluna);
return this;
}
};
//Criar o painel de Scroll com a Tabela
scroll = new JScrollPane(tabela);
scroll.setBounds(25,100,540,340);
this.setLayout(null);
tela.add(scroll);
setVisible(true);
setSize(600, 500);
setLocationRelativeTo(null);
}
}
Ajuda! Como exibir consultas no JTable?
4 Respostas
Não é assim que se faz tabelas. Você precisa fazer seu próprio TableModel.
Para fazer o que você quer, precisa de 3 passos:
- Crie uma classe para representar seus dados do banco. Pelo tipo dos seus dados, deve ser algo como Contato ou Cliente.
- Faça uma classe Dao para carregar os dados do banco, e retornar um List da sua classe.
- Aí sim, crie um TableModel que exibirá sua List.
Mas não teria como aproveitar essa classe que fiz? Não sei nem o que é essa classe DAO que você fala. Só preciso apresentar as consultas, que no console eu consigo fazer aparecer corretamente. Qual maneira mais básica de ser feito isso? Obrigado.
O DAO é simplesmente uma classe que faz a comunicação entre sua aplicação e o banco. Ele é o cara que lê os dados que estão nas tabelas, carrega nas classes de negócio, e repassa o resultado para a aplicação.
Até é possível xunxar o código para fazer parecido com o que você faz no console. Mas acredite, quando você precisar manipular as linhas da tabela (excluir do meio, obter os dados da linha selecionada, etc) vai ser muito mais complicado.
A maioria dos iniciantes em Swing cai na bobeira de utilizar o DefaultTableModel, justamente pq ele dá um resultado visível rápido. Entretanto, para o uso real e manutenção do sistema, ele se torna um inferno, e o tempo aparentemente ganho é inteiro perdido.
Obrigado. Tenho muito a aprender. O meu aprendizado na linguagem começou verdadeiramente este semestre.