Ich benötige innerhalb eines TableCellRenderers die Möglichkeit Linien auf die Zellen zu zeichnen. Die Zellen werden bereits von mir durch gesonderte JPanels dargestellt. In bestimmten Fällen soll zum Schluss eine Linie darüber gezeichnet werden. Leider passiert das nicht, weil getGraphics ausschließlich null zurück liefert. Hier mal etwas Code:
Der Test
in Zeile 13 wird jedoch nie true. Warum ist das so? Wie kann ich denn auf diesem Panel zeichnen?
Code:
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component content= null;
[...]
CellPanel cellPanel= new CellPanel(); //das Panel, das die Zelle darstellt
[...]
if (mustGetMarked){
Rectangle2D bounds= cellPanel.getBounds();
if (cellPanel.getGraphics() != null){
cellPanel.getGraphics().drawLine((int)bounds.getX(),
(int)bounds.getY(),
(int)(bounds.getX() + bounds.getWidth()),
(int)(bounds.getY() + bounds.getHeight()));
}
}
return content;
}
Der Test
Code:
cellPanel.getGraphics() != null