„Podświetlanie” określonych wierszy w JTable
Chciałbym wyróżnić określone wiersze w tabeli JTable, gdy zawartość komórki pasuje do danych wejściowych użytkownika. Mam następujący kod, który działa do tej pory:
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;
}
};
Uwagi:hashMapcontainer
jesthashmap
który ma zasięg globalny w pliku źródłowym.
Teraz to działa do pewnego stopnia, dodam toJTable
do aJTabbedPane
to jest w ciąguJFrame
. JTables są dynamicznie tworzone przez cały czas działania programu. JednakżeprepareRenderer
metoda powoduje, że wszystkie konkretne komórki we wszystkich utworzonych tabelach JT są podświetlone.
W jaki sposób mogę zachować komórki we wszystkich tabelach JT, aby zachowały swoje własne, wyróżnione komórki, zamiast mieć wszystkie JTables z dokładnie tymi samymi podświetlonymi komórkami w każdym?
Z góry dziękuję!