Markieren bestimmter Zeilen in einer JTable
Ich möchte bestimmte Zeilen in einer JTable hervorheben, wenn der Inhalt einer Zelle mit einer Eingabe des Benutzers übereinstimmt. Den folgenden Code habe ich, der bisher funktioniert:
JTable table = new JTable(model) {
public Component prepareRenderer(
TableCellRenderer renderer, int row,
int column) {
Component c = super.prepareRenderer(renderer,
row, column);
if (!isRowSelected(row) ) {
c.setBackground((hashMapcontainer
.containsKey(row)) ? Color.GREEN
: getBackground());
}
return c;
}
@Override
public boolean isCellEditable(int row, int column) {
return false;
}
};
Anmerkungen:hashMapcontainer
ist einhashmap
Dies gilt global für die Quelldatei.
Jetzt funktioniert dies bis zu einem gewissen Grad, aber ich füge dies hinzuJTable
zu einemJTabbedPane
das ist in einemJFrame
. JTables werden während der Laufzeit des Programms dynamisch erstellt. DieprepareRenderer
Methode bewirkt, dass alle spezifischen Zellen in allen erstellten JTables hervorgehoben werden.
Wie kann ich Zellen in allen JTables beibehalten, um ihre eigenen hervorgehobenen Zellen beizubehalten, anstatt alle JTables mit denselben genau hervorgehobenen Zellen in jeder zu haben?
Danke im Voraus!