Ändern von Tabellen-Zelle Farbe in Java
Habe ich gelesen und umgesetzt wird dieses Ändern JTable Zelle Farbe
Was ich wissen möchte ist, wie man eigentlich diesen code verwenden? Ich will nur änderung einer Zelle der Tabelle die Farbe, wenn ich drauf klicke.
InformationsquelleAutor pypmannetjies | 2010-05-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
In dem code, den Sie finden, Sie haben eine benutzerdefinierte CellRenderer.
Sobald Sie fügte hinzu, es zu dem Tisch, alles, was Sie brauchen, ist zu tun, wird die Formatierung an der entsprechenden Stelle:
Einen DefaultTableCellRenderer ist nichts mehr oder weniger als die Komponente, die verwendet werden, in das JTable, zu malen, die Zellen. Um genauer zu sein, in diesem Fall die Komponente JLabel (Sie können dies durch überprüfung der Quellen von DefaultTableCellRenderer).
Also alle die Formatierung, die Sie tun sollten, ist auf der "c" - Objekt (oder auf "dieses", da die Methode eigentlich wieder die gleichen Komponente jedes mal: selbst). Zum Beispiel
c.setBackground()
wird Ihnen erlauben, um eine Hintergrundfarbe festzulegen.Den
getTableCellRendererComponent()
Methode, die überschrieben wird, die aufgerufen werden für jede Zelle der JTable, mit den Parametern, die Sie über den Kontext. Sie wissen, die Tabelle, die Zeile, die Spalte, der Wert soll angezeigt werden, und Sie wissen auch, wenn die Zelle ausgewählt ist oder nicht, die helfen könnten, mit Ihrem Fall:Weiter zu gehen, beachten Sie, dass, weil Sie das überschreiben der DefaultTableCellRenderer Klasse, und verwenden Sie Ihre eigene Methode haben Sie bereits einige Formatierungen durchgeführt, wie die hintergrund Farbe, welche in dem von der Tabelle. Als solche müssen Sie nur definieren Sie Ihre eigene Farbe, wenn Sie müssen. Wenn nicht, müssten Sie kümmern sich darum, dass alle Fälle, weil da die gleiche Komponente verwendet wird, würden Sie am Ende mit der Farbe einmal festgelegt und dann auf alle weiteren Zellen, weil Sie nichts getan hätten, um es zu ändern.
Empfehle ich Ihnen, Lesen Sie die Quellen von DefaultTableCellRenderer (und seinem Gebrauch in der JTable), wenn Sie mehr darüber erfahren möchten, wie es ist, ist getan und genutzt.
InformationsquelleAutor Gnoupi
Bedeutet dies, dass die Zelle die Farbe ändert sich immer, oder hat es zurückgesetzt, sobald Sie auf eine andere Zelle.
Wenn Sie wollen einfach nur die Farbe zu ändern, vorübergehend dann die einfachste Möglichkeit ist die Verwendung der vorgestellten Konzepte in Tabelle-Zeile-Rendering, so dass Sie nicht haben, um mehrere Renderer für jede Art von Daten.
Wenn Sie möchten, dass die Zelle die Farbe dauerhaft sein, dann ist es viel intensiver, weil Sie jetzt tatsächlich benötigen, um die Daten zu speichern, die für jede Zelle, die sollen unterschiedlich eingefärbt werden. Wieder der einfachste Ansatz ist die Verwendung des Ansatzes von oben und dann vielleicht halten, eine Reihe von alle farbigen Zellen.
InformationsquelleAutor camickr
Kämpfte ich auch, als ich wollte, um die Farbe einer Zelle in JTable.
Sie können erstellen Sie eine benutzerdefinierte Tabelle, die Zelle zu Rendern und senden row/col als params:
InformationsquelleAutor catalinp