Comment le retour à la ligne dans une jtable cellule?

Je suis en train de mettre en œuvre une coutume TableRenderer comme décrit dans ce tutoriel.
J'aimerais avoir le rendu de la ligne de chaque texte, c'est long pour une cellule donnée.
L'idée est d'utiliser un TextArea comme moteur de rendu, comme il prend en charge la ligne d'emballage. Toutefois, le code suivant ne se comportent pas comme prévu:

public class LineWrapCellRenderer  extends JTextArea implements TableCellRenderer {

    @Override
    public Component getTableCellRendererComponent(
            JTable table,
            Object value,
            boolean isSelected,
            boolean hasFocus,
            int row,
            int column) {
        this.setText((String)value);
        this.setWrapStyleWord(true);            
        this.setLineWrap(true);         
        return this;
    }

}

Que j'ai mis ce moteur de rendu avec

table.setDefaultRenderer(String.class, new LineWrapCellRenderer());

Mais la cellule entrées de séjour déballé.
Si j'ajoute this.setBackground(Color.YELLOW) à la getTableCellRendererComponent() méthode,
toutes les cellules sont jaunes comme prévu, mais pas emballé.

Des idées?

Mise à JOUR: Que Michael Borgwardt indiqué dans les commentaires, le problème n'est pas le wrap ligne, mais la hauteur de ligne: JTables lignes sont de taille fixe, de sorte que si une cellule est en train de monter (car le texte est maintenant multi-alignés), nous devons augmenter la hauteur de ligne.
Mais de combien? Je vais vérifier si cela vaut la peine de l'autre, de SORTE question. Si non, je vais ajouter cette solution ici.

Update2: Le code suivant va déterminer la hauteur de ligne (si elle est placée dans getTableCellRendererComponent()):

int fontHeight = this.getFontMetrics(this.getFont()).getHeight();
int textLength = this.getText().length();
int lines = textLength / this.getColumns() +1;//+1, cause we need at least 1 row.           
int height = fontHeight * lines;            
table.setRowHeight(row, height);
InformationsquelleAutor Arvodan | 2009-06-08