Swing Renderer для отображения полного текста в столбце создает бесконечный цикл

Я хочу визуализировать таблицу с изменением высоты строки в зависимости от того, сколько текста отображается в столбце, чтобы весь текст отображался в ячейке.

Проблема в том, что когда я устанавливаю высоту строки, создается бесконечный цикл. Как я мог решить это?

Это мой рендер

final class RenderTextAreaMessage extends DefaultTableCellRenderer {

  JTextArea textareaMessage;

  @Override 
  public Component getTableCellRendererComponent(JTable aTable, Object aNumberValue, boolean aIsSelected, 
    boolean aHasFocus, int aRow, int aColumn ) {  
     System.out.println("aa");
     String value = (String)aNumberValue;

     textareaMessage = new JTextArea();

     textareaMessage.setLineWrap(true);
     textareaMessage.setWrapStyleWord(true);
     textareaMessage.setText(value);
     textareaMessage.setBorder(null);
     textareaMessage.setMargin(null);

    Component renderer = super.getTableCellRendererComponent(
            aTable, aNumberValue, aIsSelected, aHasFocus, aRow, aColumn
    );

      Font fontType = textareaMessage.getFont();
      FontMetrics fontMet = textareaMessage.getFontMetrics(fontType);
      int fheight = fontMet.getHeight();

      int lineCount = textareaMessage.getLineCount();
      int rowHeight = lineCount * fheight;

      aTable.setRowHeight(aRow,rowHeight+6);      

    return textareaMessage;
  }
}
 Sergiy Medvynskyy08 июн. 2016 г., 12:56
Не меняйте высоту строки в рендере ячейки. Это может спровоцировать бесконечный цикл.
 v8rs08 июн. 2016 г., 15:24
Тогда как я могу установить высоту строки в зависимости от длины текста в ячейке, выполняющей перенос строк?

Ответы на вопрос(0)

Ваш ответ на вопрос