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 |
- public class TextAreaCellRenderer extends JTextArea implements TableCellRenderer {
- public TextAreaCellRenderer() {
- setLineWrap(true);
- setWrapStyleWord(true);
- setFont(new java.awt.Font("Tahoma", 0, 11)); // NOI18N
- setMargin(new java.awt.Insets(5, 5, 5, 5));
- }
- @Override
- public Component getTableCellRendererComponent(
- JTable table, Object value, boolean isSelected, boolean hasFocus, introw, int column) {
- // set color & border here
- this.setText(value.toString());
- setText((value == null) ? "" : value.toString());
- setSize(table.getColumnModel().getColumn(column).getWidth(),
- getPreferredSize().height);
- if (table.getRowHeight(row) < getPreferredSize().height) {
- table.setRowHeight(row, getPreferredSize().height );
- }
- return this;
- }
- }
Para adicionar na tabela utilize o seguinte código:
- for (int i = 0; i < jTable.getColumnCount(); i++) {
- col = jTable.getColumnModel().getColumn(i);
- col.setCellRenderer(new TextAreaCellRenderer());
- }
Serviu aqui perfeitamente!
ResponderExcluirvaleu!!
Boa tarde,
ResponderExcluirQue elemento é o col na linha 2 e 3?
Você não declarou nenhuma variável com o nome "col".
Obrigado
Diego
Bom dia.
ResponderExcluirO que seria o "col" nas linhas 2 e 3?
Não foi declarada nenhuma variável com esse nome.
Obrigado...
Olá, estava dando erro no exemplo para utilizar, desta forma funcionou normal ao utilizar a classe:
ResponderExcluirjTable.getColumnModel().getColumn(3).setCellRenderer(new TextAreaCellRenderer());
Este comentário foi removido pelo autor.
ResponderExcluirEste comentário foi removido pelo autor.
ResponderExcluirgalera que esta com duvida da variavel "col" que não foi especificado!
ResponderExcluirfiz 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