【发布时间】:2011-10-17 14:04:48
【问题描述】:
我有一个简单的问题让我发疯。
我有一个 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的全部内容都显示出来?
【问题讨论】:
-
sscce 可能会澄清问题。
标签: java swing height row jlist