Forse non ti è chiaro come funziona l'istruzione if:
codice:
if ( condizione ) {
... // Se vera
} else {
... // se falsa
}
La "else if" è sostanzialmente l'annidamento di una istruzione if all'interno del ramo else di quella più esterna:
codice:
if ( condizione1 ) {
... // Se vera
} else {
if ( condizione2 ) {
... // Se falsa condizione1 e vera condizione2
} else {
if ( condizione3 ) {
... // Se falsa condizione1 e falsa condizione2 e vera condizione3
}
}
}
Le parentesi graffe non sono necessare se e solo se l'istruzione da eseguire è atomica (ovvero, una sola riga di istruzione).
Quello che hai scritto tu non ha molto senso visto che dopo il test di una condizione il compilatore si aspetta una istruzione e tu gli dici di eseguire una else... ma una else prevede prima una if che non c'è... tradotto, quello che hai scritto tu (con le opportune graffe) è questo:
codice:
if(annoguastopc.getSelectedIndex()>annointerventopc.getSelectedIndex()) {
else if (meseguastopc.getSelectedIndex()>meseinterventopc.getSelectedIndex()) {
else if (giornoguastopc.getSelectedIndex()>giornointerventopc.getSelectedIndex()){
JOptionPane.showMessageDialog(frame,"Non è possibile che l'intervento sia fatto prima che accada il guasto","Errore",JOptionPane.ERROR_MESSAGE);
return;
}
che come puoi ben vedere non ha alcun senso...
Ciao.