Pessoal, o título já diz tudo…
to tentando alterar a cor de uma linha da minha tabela, em tempo de execução…
Porém, não tenho tido muito sucesso, já tentei de quase tudo… aproveito pra perguntar
qual a diferença entre uma jtable e a defaulttablemodel…
Alterar cor de uma única linha com DefaultTableModel
5 Respostas
eu vi nesse exemplo, como fazer com uma jtable… mais eu to usando default…
http://www.roseindia.net/java/example/java/swing/CustomCellRenderer.shtml
Isso não se resolve com o Default. Já tá passando de hora de se livrar dele, não?
Ctz? é que o projeto está quase no fim… só queria adicionar mais essa função… =\
Bom, você pode fazer um CellRenderer que receba o número das linhas a serem pintadas.
Não é a melhor prática do mundo, mas como vc tá pouco se lixando para boas práticas, deve funcionar.
Deve ficar mais ou menos assim:
public class CustomTableCellRenderer extends DefaultTableCellRenderer{
Set<Integer> linhas = new HashSet<Integer>();
public Component getTableCellRendererComponent (JTable table, Object obj, boolean isSelected, boolean hasFocus, int row, int column) {
Component cell = super.getTableCellRendererComponent(table, obj, isSelected, hasFocus, row, column);
cell.setBackground(linhas.contains(row) ? Color.GREEN : Color.WHITE);
return cell;
}
public void adicionarLinha(int linha) {
linhas.add(linha);
}
public void removerLinha(int linha) {
linhas.remove(linha);
}
}
seuRenderer = new CustomTableCellRenderer();
for (int i = 0; i < suaTable.getColumnCount(); i++) {
suaTable.getColumnModel().getColumn(i).setCellRenderer(seuRenderer);
}
seuRenderer.addLinha(linhaQueDeveMudarDeCor);
Agora, por que você insistiu no Default? Faz algum tempo que já te sugeri para mudar.
É algum tipo de prazer masoquista? Ou é preguiça de aprender o jeito certo mesmo?
Não tenho muita prática com swing, meu forte mesmo é web…
acontece que peguei um trabalhinho pra fazer aqui em pouco tempo, mais para o próximo irei deixar o default de lado,
obg de qualquer forma…