Bom dia pesquisei sobre o assunto mas não achei nenhuma solução aínda gostaria de ver com vcs como resolvo meu problema, tenho uma tabela customizada que pinta a cor da linha conforme o status do atendimento, mas quando vou utilizar o método jTable.getSelectedRow(), ele sempre me retorna o valor da primeira linha por mais que aparentemente pareça estar selecionada.
Abaixo segue meu codigo:
...
jTable.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
String status = (String) table.getValueAt(row, 5);
String dataString = (String) table.getValueAt(row, 3);
String hojeString = "";
try {
hojeString = CalendarUtils.calendar2String(Calendar.getInstance());
if (status.equals(StatusAtendimento.CONCLUIDO.nome)) {
setBackground(Color.GREEN);
} else if (status.equals(StatusAtendimento.AGUARDANDO.nome)) {
setBackground(Color.BLUE);
} else if (status.equals(StatusAtendimento.PREVISAO.nome)) {
if (hojeString.equals(dataString)) {
setBackground(Color.YELLOW);
} else if (DateUtils.d1MaiorQueD2(DateUtils.stringToDate(hojeString), DateUtils.stringToDate(dataString), false)) {
setBackground(Color.RED);
} else if (DateUtils.d1MaiorQueD2(DateUtils.stringToDate(dataString), DateUtils.stringToDate(hojeString), false)) {
setBackground(Color.LIGHT_GRAY);
}
}
} catch (Exception ex) {
}
return this;
}
});
...
E o código que utilizo para obter a linha selecionada:
...
private void jTableMouseClicked(java.awt.event.MouseEvent evt) {
if (evt.getClickCount() > 1) {
setAtendimentoSelecionado(null);
JTable t = (JTable) evt.getSource();
int column = jTable.getColumnCount(); //Coluna ID
int row = t.getSelectedRow();
Atendimento atendimento = (Atendimento) (((TableModel) t.getModel()).getValueAt(row, column));
setAtendimentoSelecionado(atendimento);
jTabbedPane.setSelectedIndex(1);
}
}
Fico no aguardo de uma posição. Agradeço desde já.