Dies macht mich absolut verrückt.Ändern der JTable-Zellenfarbe
Ich weiß, dass, um die Formatierung von Tabellenzellen mit JTable ändern, ich meinen eigenen Renderer verwenden muss. Aber ich kann das nicht richtig umsetzen.
Dies ist meine aktuelle Setup:
public class MyClass
{
public static void main(String args[])
{
JTable myTable = new JTable(10, 10);
myTable.setDefaultRenderer ([I dont know what to put here], new CustomRenderer());
}
}
class CustomRenderer extends DefaultTableCellRenderer
{
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
// Formatting
return c;
}
}
Was kann ich für den ersten Parameter von setDefaultRenderer
verwenden? Die API sagt nur "Klasse". Ich habe keine Ahnung, was ich dort hinstellen soll.
Könnte jemand einfach erklären, wie ich das umsetze? Bitte geben Sie ein Beispiel, wie ich die Formatierung innerhalb der main()
Methode auch ändern kann.
Dies scheint nicht für mich zu arbeiten. Das einzige, was ich getan habe, ist die Methode setDefaultRenderer aufzurufen und die Klasse CustomRenderer zu erstellen. Gibt es noch etwas, was ich tun muss, um das zu machen? –
Ich habe es funktioniert mit Object.class statt String.class. Nicht sicher, warum dies notwendig war, weil alle meine Daten Strings waren. Vielen Dank für Ihre Hilfe! –
Darf ich den Renderer in einem Listener nicht ändern? Ich möchte die Tabelle neu formatieren, wenn eine Taste gedrückt wird. –