Erweitern Sie JList Zeilen-Höhe je nach Inhalt
Ich habe ein einfaches problem, das völlig macht mich verrückt.
Habe ich eine JList und möchte seine Zellen zu erweitern, je nach Ihrem Inhalt, der text von variabler Länge.
So habe ich eine CustomCellRenderer etwa so:
@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;
}
aber die Zellen sind nur eine Textzeile hoch und den rest der JTextArea ist abgeschnitten. Wenn ich
ta.setPreferredSize(new Dimension(0, 70));
Bekomme ich eine Zeile Höhe von 70, und ich kann sehen Sie mehr von der JTextArea text, aber noch nicht alles.
Gibt es eine Möglichkeit, um JList erweitern Sie Ihre Zellen, so dass der gesamte Inhalt der JTextArea angezeigt wird?
- Ein sscce kann klären das problem.
Du musst angemeldet sein, um einen Kommentar abzugeben.
gibt es vielleicht einfachste und schönste Weg, ich denke, dass JTable mit einer TableColumn (und ohne TableHeader)in allen Fällen besser als JList, hier ist Ihre Render MacOX-version
dann ausgegeben werden soll
Nicht sicher, ob es eine elegante Art und Weise.
Eine Möglichkeit, die ich kenne arbeitet, ist wie folgt :
In
getListCellRendererComponent()
einige Logik verwenden, um einfügen
<br>
in den text, wenn gewünscht.Versuchen Sie es mit der JList ist setFixedCellHeight () - Methode.