Cara, vou tentar te explicar o que preciso fazer, pois não consegui com a dica que me passou. Assim, tenho uma classe chamada “Principal.java” nela tenho toda a parte das interfaces…tenho nela uma jTable que usa o model chamado NotasTableModel que fiz em uma classe separada chamada “NotasTableModel.java”. A NotasTableModel tem o método getValueAt assim:
public Object getValueAt(int row, int column) {
AlunoSaida aluno = alunosSaida.get(row);
Principal p = new Principal();
JComboBox jComboBoxTrimestre = p.getComboBoxTrimestre();
String trimestre = (String)jComboBoxTrimestre.getModel().getSelectedItem();
//Verifica qual o trimestre pra saber qual valor devolver
if (("1º Trimestre").equals(trimestre)) {
//Verifica qual valor deve ser retornado
if (column == COL_ALUNO)
return aluno.getNome();
else if (column == COL_AVAL1)
return aluno.getTrimestre1().getAvaliacao1();
else if (column == COL_AVAL2)
return aluno.getTrimestre1().getAvaliacao2();
else if (column == COL_AVAL3)
return aluno.getTrimestre1().getAvaliacao3();
else if (column == COL_AVAL4)
return aluno.getTrimestre1().getAvaliacao4();
else if (column == COL_AVAL5)
return aluno.getTrimestre1().getAvaliacao5();
else if (column == COL_MEDIA)
return aluno.getTrimestre1().getMedia();
else if (column == COL_FALTA)
return aluno.getTrimestre1().getFaltas();
else if (column == COL_RECUPERACAO)
return aluno.getTrimestre1().getRecuperacao();
}
if (("2º Trimestre").equals(trimestre)) {
//Verifica qual valor deve ser retornado
if (column == COL_ALUNO)
return aluno.getNome();
else if (column == COL_AVAL1)
return aluno.getTrimestre2().getAvaliacao1();
else if (column == COL_AVAL2)
return aluno.getTrimestre2().getAvaliacao2();
else if (column == COL_AVAL3)
return aluno.getTrimestre2().getAvaliacao3();
else if (column == COL_AVAL4)
return aluno.getTrimestre2().getAvaliacao4();
else if (column == COL_AVAL5)
return aluno.getTrimestre2().getAvaliacao5();
else if (column == COL_MEDIA)
return aluno.getTrimestre2().getMedia();
else if (column == COL_FALTA)
return aluno.getTrimestre2().getFaltas();
else if (column == COL_RECUPERACAO)
return aluno.getTrimestre2().getRecuperacao();
}
if (("3º Trimestre").equals(trimestre)) {
//Verifica qual valor deve ser retornado
if (column == COL_ALUNO)
return aluno.getNome();
else if (column == COL_AVAL1)
return aluno.getTrimestre3().getAvaliacao1();
else if (column == COL_AVAL2)
return aluno.getTrimestre3().getAvaliacao2();
else if (column == COL_AVAL3)
return aluno.getTrimestre3().getAvaliacao3();
else if (column == COL_AVAL4)
return aluno.getTrimestre3().getAvaliacao4();
else if (column == COL_AVAL5)
return aluno.getTrimestre3().getAvaliacao5();
else if (column == COL_MEDIA)
return aluno.getTrimestre3().getMedia();
else if (column == COL_FALTA)
return aluno.getTrimestre3().getFaltas();
else if (column == COL_RECUPERACAO)
return aluno.getTrimestre3().getRecuperacao();
}
return "";
}
Se você observar, eu preciso testar o valor de um jComboBox pra saber o que fazer. Este jComboBox está na classe “Principal.java” e o problema que estou encontrando é em pegar o valor que está selecionado no jComboBox. Ele sempre me devolve o valor default dele, independente de eu selecionar outro valor, ele devolve sempre o valor default “Selecione um trimestre”.
Talvez o problema possa estar na construção do jComboBox. Ele é construído assim:
[code]jComboBoxTrimestre = new javax.swing.JComboBox();
jComboBoxTrimestre.setModel(new javax.swing.DefaultComboBoxModel(new String[] { “Selecione um trimestre” }));[/code]
E depois ao clicar em um botão eu carrego ele assim:
String trimestre = (String)jComboBoxTrimestre.getSelectedItem();
if (trimestre.equals("Selecione um trimestre")){
// Carrega Combo de Trimestres
jComboBoxTrimestre.removeAllItems();
jComboBoxTrimestre.addItem("Selecione um trimestre");
jComboBoxTrimestre.addItem("1º Trimestre");
jComboBoxTrimestre.addItem("2º Trimestre");
jComboBoxTrimestre.addItem("3º Trimestre");
}
Por isso que queria atualizar a jTable, pois quando minha aplicação roda o valor do combo é “Selecione um trimestre” e dependendo do que for escolhido ela então deve mostrar certos dados como o getValueAt está mostrando.
Pensei em fazer assim: Roda a aplicação, seleciono um trimestre, clico num botão e a jTable seria atualizada chamando novamente o getValueAt que leria o valor do combo e saberia o que fazer dependendo do valor.
Agradeço muito a ajuda e espero conseguir resolver…
Grande abraço