“Realçar” linhas específicas em um JTable
Eu gostaria de destacar linhas específicas em um JTable sempre que o conteúdo de uma célula corresponder a uma entrada do usuário. O seguinte código é o que eu tenho que funciona até agora:
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;
}
};
Notas:hashMapcontainer
é umhashmap
que está globalmente no escopo do arquivo de origem.
Agora isso funciona até certo ponto, no entanto, estou adicionando issoJTable
para umJTabbedPane
que está dentro de umJFrame
. JTables são dinamicamente criados durante todo o tempo de execução do programa. No entanto, oprepareRenderer
O método faz com que todas as células específicas em todos os JTables criados sejam destacadas.
Como posso manter as células em todos os JTables para manter suas próprias células destacadas específicas em vez de ter todos os JTables com as mesmas células exatamente realçadas em cada um?
Desde já, obrigado!