Estou usando um modelo de jtable pronto, Queria Renomear ou dar nome as minhas colunas

2 respostas
R
package temporario;

import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableModel;

/** 
 * Implementação de um {@link TableModel} para renderizar o {@link ResultSet} de 
 * uma consulta ao banco 
 *  
 * @author Ricardo Artur Staroski 
 */  

public final class ResultSetTableModel extends AbstractTableModel {
    
 /** 
    * Classe interna utilizada para armazenar o nome de uma coluna e a classe 
    * Java correspondente ao tipo de dado da mesma 
    */  
   private static class Column {  
  
      /** 
       * A classe Java do tipo de dado da coluna 
       */  
      public final Class<?> CLASS;  
  
      /** 
       * O nome da coluna 
       */  
      public final String   NAME;  
  
      /** 
       * Instancia um objeto {@link Column} com o tipo de dado e nome 
       * informados 
       *  
       * @param type 
       *            A classe Java correspondente ao tipo de dado da coluna 
       * @param name 
       *            O nome da coluna 
       */  
      public Column(final String name,  
                    final Class<?> type) {  
         NAME = name;  
         CLASS = type;  
      }  
   } 
  
   /** 
    * Classe interna utilizada para armazenar os valores de um registro da 
    * tabela 
    */  
   private static class Row {  
  
      /** 
       * Os valores de cada coluna do registro 
       */  
      public final Object[] VALUES;  
  
      /** 
       * Instancia um objeto {@link Row} para o {@link ResultSet} informado 
       *  
       * @param rs 
       *            O {@link ResultSet} da linha a ser processada 
       * @throws SQLException 
       */  
      public Row(final ResultSet rs) throws SQLException {  
         final int columns = rs.getMetaData().getColumnCount();  
         VALUES = new Object[columns];  
         for (int i = 1; i <= columns; i++) {  
            VALUES[i - 1] = rs.getObject(i);  
         }  
      }  
   }  
  
   // Classes serializável, declarar este atributo para não gerar warnings  
   private static final long serialVersionUID = 1L;  
  
   // linsta de colunas da tabela  
   private List<Column>      columns;
   // lista de registros da tabela  
   private List<Row>         lines;  
  
   /** 
    * Instancia um {@link ResultSetTableModel} para o {@link ResultSet} 
    * informado 
    *  
    * @param rs 
    *            O {@link ResultSet} que a {@link JTable} deste modelo irá 
    *            renderizar 
    * @throws SQLException 
    * @throws ClassNotFoundException 
    */  
   public ResultSetTableModel(final ResultSet rs) throws SQLException,  
                                                 ClassNotFoundException {  
      columns = new ArrayList<>();  
      final ResultSetMetaData md = rs.getMetaData();  
      final int count = md.getColumnCount();  
      for (int i = 1; i <= count; i++) {  
         columns.add(new Column(md.getColumnName(i),  
                                Class.forName(md.getColumnClassName(i))));  
      }  
      lines = new ArrayList<>();  
      while (rs.next()) {  
         lines.add(new Row(rs));  
      }  
   }  
  
   @Override  
   public Class<?> getColumnClass(final int columnIndex) {  
      return columns.get(columnIndex).CLASS;  
   }  
  
   @Override  
   public int getColumnCount() {  
      return columns.size();  
   }  
  
   @Override  
   public String getColumnName(final int column) {  
      return columns.get(column).NAME;  
   }  
  
   @Override  
   public int getRowCount() {  
      return lines.size();  
   }  
  
   @Override  
   public Object getValueAt(final int rowIndex, final int columnIndex) {  
      return lines.get(rowIndex).VALUES[columnIndex];  
   }  
  
   @Override  
   public boolean isCellEditable(final int rowIndex, final int columnIndex) {  
      return false;  
   }

}

Estou usando um modelo de jtable pronto, Queria Renomear ou dar nome as minhas colunas,
pois este modelo, pega o nome direto do banco de dados
se no banco de dados estiver codigo ele irá imprimir codigo
mas quero que imprá Código
se alguem poder ajudar...

vlw

2 Respostas

ViniGodoy

Basta alterar o retorno do método getColumnName.

Nesse método o JTable te passar um índice de coluna como parâmetro de entrada, e você deve retornar qual é o nome daquela coluna.

R

vlwwwwwwwww

problema resolvido :slight_smile:

Criado 18 de outubro de 2012
Ultima resposta 18 de out. de 2012
Respostas 2
Participantes 2