У меня есть простая проблема, которая сводит меня с ума.
У меня есть JList, и я хотел бы, чтобы его ячейки расширялись в зависимости от их содержимого, то есть текста переменной длины.
Итак, я создал CustomCellRenderer следующим образом:
@Override
public Component getListCellRendererComponent(final JList list, final Object value, final int index, final boolean isSelected, final boolean hasFocus)
{
final String text = (String) value;
final JTextArea ta = new JTextArea();
ta.setText(text);
ta.setFont(new Font("Dialog", Font.PLAIN, (int) Theme.FONTSIZE_TEXT));
ta.setForeground(Theme.FONTCOLOR_CONTENT);
ta.setLineWrap(true);
ta.setWrapStyleWord(true);
ta.setColumns(0);
ta.setBorder(BorderFactory.createEmptyBorder(10, Theme.PADDING, 0, 0));
return ta;
}
но ячейки имеют высоту только одну текстовую строку, а остальная часть JTextArea обрезается. Если я добавлю
ta.setPreferredSize(new Dimension(0, 70));
Я получаю высоту строки 70 и вижу больше текста JTextArea, но все еще не все.
Есть ли способ заставить JList расширять свои ячейки так, чтобы отображалось все содержимое JTextArea?