Hi Leute,
möchte gerne Inhalte in de JTable mehrzeilig anzeigen. Habs derzeit so gelöst , dass ihc im Renderes aus dem Text HTML-Code genriere. Jeodch besteht, das Problem das ich die Anpassung der Zeilenhöhe nicht richtig hinbekomme. Hier mal der Renderer:
Gruß Jan
möchte gerne Inhalte in de JTable mehrzeilig anzeigen. Habs derzeit so gelöst , dass ihc im Renderes aus dem Text HTML-Code genriere. Jeodch besteht, das Problem das ich die Anpassung der Zeilenhöhe nicht richtig hinbekomme. Hier mal der Renderer:
Code:
class RendererTableMeldungen extends DefaultTableCellRenderer {
private static final long serialVersionUID = 1L;
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
super.getTableCellRendererComponent(table, value, isSelected, hasFocus,
row, column);
int indexMeldung = table.getColumnModel().getColumnIndex("Meldung");
if (column == indexMeldung) {
int colWidth = table.getColumnModel().getColumn(indexMeldung)
.getWidth();
String text = value.toString();
double maxLineSize = (colWidth / 10);
StringBuffer strb = new StringBuffer();
for (String textZeile : text.split("\n")) {
strb.append(textZeile + "<br>");
}
setVerticalAlignment(JLabel.TOP);
setText("<html>" + strb.toString() + "<html>");
Dimension dim = getPreferredSize();
if (text.length() > maxLineSize) {
int rowHeight = ((int) (dim.getWidth() / colWidth)) * 14 + 14;
if (rowHeight < 30)
rowHeight = 30;
table.setRowHeight(row, rowHeight);
}
}
return this;
}
}
Gruß Jan