Desenvolvedor e Analista de Sistemas | IFPA

quarta-feira, 15 de julho de 2015

JTable com alturas de linhas de acordo como tamanho do texto/conteúdo | JAVA

com 7 Comentários
Configurando a linha da JTable para ficar semelhante a quebra de texto do EXCEL, aumentando o tamanho da linha de acordo com o tamanho do texto:

Exemplo de Tabela 


  1. public class TextAreaCellRenderer extends JTextArea implements TableCellRenderer {  
  2.   
  3.         public TextAreaCellRenderer() {  
  4.   
  5.             setLineWrap(true);  
  6.             setWrapStyleWord(true);  
  7.             setFont(new java.awt.Font("Tahoma"011)); // NOI18N  
  8.             setMargin(new java.awt.Insets(5555));  
  9.         }  
  10.   
  11.         @Override  
  12.         public Component getTableCellRendererComponent(  
  13.                 JTable table, Object value, boolean isSelected, boolean hasFocus, introw, int column) {  
  14.   
  15.             // set color & border here                
  16.             this.setText(value.toString());  
  17.   
  18.             setText((value == null) ? "" : value.toString());  
  19.             setSize(table.getColumnModel().getColumn(column).getWidth(),  
  20.                     getPreferredSize().height);  
  21.   
  22.             if (table.getRowHeight(row) < getPreferredSize().height) {  
  23.                 table.setRowHeight(row, getPreferredSize().height );  
  24.             }  
  25.   
  26.             return this;  
  27.         }  
  28.     }  

Para adicionar na tabela utilize o seguinte código:
  1. for (int i = 0; i < jTable.getColumnCount(); i++) {  
  2.             col = jTable.getColumnModel().getColumn(i);  
  3.             col.setCellRenderer(new TextAreaCellRenderer());  
  4.         }  

+1

7 comentários :

  1. Boa tarde,

    Que elemento é o col na linha 2 e 3?

    Você não declarou nenhuma variável com o nome "col".

    Obrigado
    Diego

    ResponderExcluir
  2. Bom dia.

    O que seria o "col" nas linhas 2 e 3?
    Não foi declarada nenhuma variável com esse nome.

    Obrigado...

    ResponderExcluir
  3. Olá, estava dando erro no exemplo para utilizar, desta forma funcionou normal ao utilizar a classe:

    jTable.getColumnModel().getColumn(3).setCellRenderer(new TextAreaCellRenderer());

    ResponderExcluir
  4. Este comentário foi removido pelo autor.

    ResponderExcluir
  5. Este comentário foi removido pelo autor.

    ResponderExcluir
  6. galera que esta com duvida da variavel "col" que não foi especificado!
    fiz assim e deu certo:
    for (int i = 0; i < jtTabela.getColumnCount(); i++)
    {
    jtTabela.getColumnModel().getColumn(0);
    jtTabela.getColumnModel().getColumn(0).setCellRenderer(new TextAreaCellRenderer());
    }
    depois vá clique com direito na tabela e vá em "conteudo da tabela";
    vá em linhas e remova todas as linhas que ficam "default", deixe zerado, se não vai da erro "null" no seu codigo

    ResponderExcluir

Total de visualizações