Hallo zusammen,
ich habe einen benutzerdefinierten TableCellRenderer erstellt, der verschiedene bedingte ZellFarben und Zeilenumbrüche erzeugen soll.
Dieser funktioniert auch, jedoch nur mit Stringwerten.
Spalte 0 der Tabelle ist vom Typ int, der Rest ist vom Typ String. Die erste Spalte habe ich bis jetzt mit einem Workaround gelöst, indem ich
erst ab der 2ten Spalte auslese.
Gibt es eine Möglichkeit den Renderer mit verschiedenen Formaten zu füttern.
Viele Grüße
MaDeBuVie
ich habe einen benutzerdefinierten TableCellRenderer erstellt, der verschiedene bedingte ZellFarben und Zeilenumbrüche erzeugen soll.
Dieser funktioniert auch, jedoch nur mit Stringwerten.
Spalte 0 der Tabelle ist vom Typ int, der Rest ist vom Typ String. Die erste Spalte habe ich bis jetzt mit einem Workaround gelöst, indem ich
erst ab der 2ten Spalte auslese.
Java:
package renderer;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Rectangle;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.table.TableCellRenderer;
import javax.swing.text.BadLocationException;
public class UserTableCellRenderer extends JTextArea implements TableCellRenderer {
private static final long serialVersionUID = 1L;
Color bkgndColor;
Color fgndColor;
public UserTableCellRenderer() {
setLineWrap(true);
setWrapStyleWord(true);
this.bkgndColor = bkgndColor;
this.fgndColor = fgndColor;
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
this.setText((String) value);
final int columnWidth = table.getColumnModel().getColumn(column).getWidth();
final int rowHeight = table.getRowHeight(row);
this.setSize(columnWidth, rowHeight);
this.validate();
//Color Begin
this.setBackground(bkgndColor);
this.setForeground(fgndColor);
}
//Color End
return this;
}
}
Java:
UserTableCellRenderer dynRow = new UserTableCellRenderer();
if (z>0){
this.table.getColumnModel().getColumn(z).setCellRenderer(dynRow);
}
Gibt es eine Möglichkeit den Renderer mit verschiedenen Formaten zu füttern.
Viele Grüße
MaDeBuVie