[Resolvido] Como alterar cor da fonte e borda de uma célula x,y em jTable
2 respostas
B
Bruno_M_Gasparotto
Olá.
Em uma classe Acompanhamento, tenho uma public static jTableEquipe1, e em uma classe TimerAcompanhamento, eu gostaria de alterar a cor dessa jTableEquipe1, assim como eu altero seus valores (Acompanhamento.jTableEquipe1.setValueAt…
Não postei os códigos pq são bem grandes, mas se precisarem eu recorto oq for preciso e posto aki.
Alguem tem idéia de como fazer isso? Encontrei soluções na internet apenas para alterar tabelas dentro da propria classe, e não consegui fazer funcionar dessa forma.
Consegui fazer uma célula mudar a cor da fonte na construção da classe, dei uma pesquisada em outros tópicos e achei alguma coisa, porém agora preciso fazer essas alterações em tempo de execução, de acordo com um timer em cima de uma condição x. Vou continuar pesquisando aqui. Segue o código:
packagebruno;importjava.awt.Color;importjava.awt.Component;importjava.awt.Font;importjavax.swing.JTable;importjavax.swing.table.DefaultTableCellRenderer;/** * * @author bruno */publicclassLineSelectionTableCellRendererextendsDefaultTableCellRenderer{@OverridepublicComponentgetTableCellRendererComponent(JTabletable,Objectvalue,booleanisSelected,booleanhasFocus,introw,intcolumn){Componentresult=super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);if(row==0&&column==0&&table==Acompanhamento.jTableEquipe1){this.setFont(newFont("arial",Font.BOLD,12));this.setForeground(Color.RED);}else{this.setForeground(Color.DARK_GRAY);}returnresult;}}
e na classe principal:
privatevoidinitTableRenderers(){
TableCellRendererrenderer=newLineSelectionTableCellRenderer(); for(intc=0; c < jTableEquipe1.getColumnCount(); c++) { jTableEquipe1.setDefaultRenderer(jTableEquipe1.getColumnClass(c),renderer); }
for(intc=0; c < jTableEquipe2.getColumnCount(); c++) { jTableEquipe2.setDefaultRenderer(jTableEquipe2.getColumnClass(c),renderer); }
for(intc=0; c < jTableEquipe3.getColumnCount(); c++) { jTableEquipe3.setDefaultRenderer(jTableEquipe3.getColumnClass(c),renderer); }
}