Ändern JTable Zelle Farbe
Dies treibt mich absolut verrückt.
Ich weiß, dass, ändern Sie die Formatierung von Zellen in einer Tabelle mit JTable habe ich meine eigenen renderer. Aber ich kann nicht scheinen, um diese umsetzen richtig.
Dies ist mein Aktuelles 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 brauche ich für den ersten parameter setDefaultRenderer
? Die API sagt nur 'Klasse'. Ich habe keine Ahnung, was dort zu setzen.
Könnte mir jemand mal erklären, in den einfachsten Bedingungen, wie ich gehen über die Umsetzung dieser? Bitte ein Beispiel geben, wie ich das ändern kann das die Formatierung innerhalb der main()
Methode als gut.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der ersten parameter für
setDefaultRenderer
legte die Klasse literal für die Klasse, die Sie außer Kraft setzen möchten rendering. I. e., wenn Sie Ihre Daten aus allen Zeichenfolgen, Sie könnenWenn Ihr Daten besteht darin, die Werte mit
BigDecimal
oderInteger
als Klassen, die Sie haben, die zum aufrufen dieser Methode mehrmals für jede Klasse geben (BigDecimal.class
oderInteger.class
in jedem Fall).Und schließlich, um die Hintergrundfarbe zu ändern Sie tun dies in Ihrer renderer:
Wenn Sie schreiben, ein renderer, der sollte alle Klassen, die ein interface, Sie müssen auch ändern
getColumnClass
Funktion Ihres Tabelle Modell und lassen es wieder die interface-Klasse für alle Objekte, die dieses interface implementieren:Damit kann man registrieren Sie einen renderer für IColorable.class und braucht nicht zu registrieren, einen separaten renderer für jede Implementierung.