Uma palavra final sobre jtable + netbeans

1 resposta
knik

Olá pessoal.
Depois de tanto pesquisar e não achar muita coisa, fiz o código na mão utilizando o netBeans. Acompanhe passo-a-passo:

Incialmente importe os pacotes necessários
import java.awt.Dimension;
import java.util.Vector;
import java.sql.*;
import javax.swing.*;
import javax.swing.table.*;
Em seguida, crie o seguinte método:
public void EncheTable(){
        Vector colunas = new Vector();
        Vector linhas = new Vector();
        
         /*instancio a classe conexao, alocando espaço
         *na memória para ela, tornando-a disponível
         */ 
        conexao conexao = new conexao();
        if (conexao.conecta()){            
            try{
                
                /**preencho a lista (table) com 
                 *os dados da consulta
                 */                
                Statement stmt = conexao.conn.createStatement();
                ResultSet res = stmt.executeQuery(  "SELECT COD_US," +
                                                    "NIVEL_US, " +
                                                    "NOME_US FROM USUARIOS" );
                ResultSetMetaData meta = res.getMetaData();
 		int cc = meta.getColumnCount();
                
                
                        
                boolean registro = res.next();
                
                if (registro){
                    //cabeçalho
                    String[] col = new String []{"co","no", "niv"};                    
                    for (int i = 0; i <= (col.length-1); ++i){                        
                        colunas.addElement(col[i]);                        
                    }  
                    
                    //dados em cada linha                    
                    do{                        
                        Vector dadosTabela = new Vector();
                        for (int i = 1; i <= cc; ++i){
                            dadosTabela.addElement(res.getString(i));                            
                        }
                        linhas.addElement(dadosTabela);                        
                    }while(res.next());
                }
            } catch(SQLException erroSQL){            
                JOptionPane.showMessageDialog(  null,
                                                "Tabela não contém registros!",
                                                "Meu Programa",
                                                JOptionPane.ERROR_MESSAGE );    
            }                   
        }  
                   
        DefaultTableModel modelo = new DefaultTableModel(linhas, colunas);  
        tblUsuarios.setModel(modelo);        
    }
Crie também o seguinte método:
public void ConfiguraTable(){
        /**configurações da aparência da tabela*/      
        DefaultTableCellRenderer centro = new DefaultTableCellRenderer();
        DefaultTableCellRenderer direita = new DefaultTableCellRenderer();
        DefaultTableCellRenderer esquerda = new DefaultTableCellRenderer();        
 	centro.setHorizontalAlignment(SwingConstants.CENTER); 	
 	direita.setHorizontalAlignment(SwingConstants.RIGHT); 	
 	esquerda.setHorizontalAlignment(SwingConstants.LEFT);
 
 	JTableHeader header = tblUsuarios.getTableHeader(); 
 	header.setPreferredSize(new Dimension(0, 30)); 
 		
        TableColumnModel coluna = tblUsuarios.getColumnModel(); 		
 	coluna.getColumn(0).setCellRenderer(centro);
 	coluna.getColumn(1).setCellRenderer(esquerda);
 	coluna.getColumn(2).setCellRenderer(centro);
 
 	coluna.getColumn(0).setMinWidth(80);
 	coluna.getColumn(0).setMaxWidth(80);
        coluna.getColumn(1).setMinWidth(290);
        coluna.getColumn(1).setMaxWidth(290);
        coluna.getColumn(2).setMinWidth(50);
 	coluna.getColumn(2).setMaxWidth(50);        
    }
No construtor do form, após o método initComponents(), digite as seguintes linhas:
EncheTable();
ConfiguraTable();

É claro que você deverá criar uma classe pública chamada conexao que conterá um método conecta, o qual conectará o seu banco de dados. Mas caso não queira criar a classe conecta, poderá fazer a conexão dentro do próprio form onde está a table.

1 Resposta

brlima

A ideia disso e so carregar uma JTable a partir de um SQL?

Criado 11 de junho de 2006
Ultima resposta 12 de jun. de 2006
Respostas 1
Participantes 2