Io ho invece fatto una cosa ingarbugliata come questa (che però funziona allo scopo)
che ne pensi?
codice:
if (contaMesi == 12) {
                List<Mese> mese = ricercaMese.findDirectory(dir, pathname.getData());
                for (i = 0; i < righe; i++) {
                    tabellaMesi.setValueAt(mese.get(i).getNomeMese(), i, 0);
                    tabellaMesi.setValueAt(mese.get(i).getMediaMeseIrradianzaG(), i, 1);
                    tabellaMesi.setValueAt(mese.get(i).getMediaMeseIrradianzaGd(), i, 2);
                    tabellaMesi.setValueAt(mese.get(i).getMediaMeseIrradianzaGc(), i, 3);
                    tabellaMesi.setValueAt(mese.get(i).getOreTotaliMese(), i, 4);
                }
            } else {
                i = 0;
                j = 0;
                boolean salta = false;
                for (ApriFileMese.MeseDellAnno m : ApriFileMese.MeseDellAnno.values()) {
                    fileMese = (dir + File.separator + pathname.getData() + File.separator + m + ".txt");
                    File fileListMese = new File(fileMese);
                    System.out.println(fileListMese);
                    System.out.println(m);

                    if (fileListMese.exists() == false && salta == false) {
                        Object[] options = {"Continue", "Terminate"};
                        int answerMonth = JOptionPane.showOptionDialog(this,
                                "The radiation data for the month of " + m + " are not present",
                                "Warning", JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]);
                        if (answerMonth == 0 && salta == false) {
                            tabellaMesi.setValueAt(" ", i, 0);
                            tabellaMesi.setValueAt(" ", i, 1);
                            tabellaMesi.setValueAt(" ", i, 2);
                            tabellaMesi.setValueAt(" ", i, 3);
                            tabellaMesi.setValueAt(" ", i, 4);
                            i++;
                        } else if (answerMonth == 1 || answerMonth == JOptionPane.CLOSED_OPTION) {
                            tabellaMesi.setValueAt(" ", i, 0);
                            tabellaMesi.setValueAt(" ", i, 1);
                            tabellaMesi.setValueAt(" ", i, 2);
                            tabellaMesi.setValueAt(" ", i, 3);
                            tabellaMesi.setValueAt(" ", i, 4);
                            i++;
                            salta = true;
                        }
                    } else if (fileListMese.exists() == false && salta == true) {
                        tabellaMesi.setValueAt(" ", i, 0);
                        tabellaMesi.setValueAt(" ", i, 1);
                        tabellaMesi.setValueAt(" ", i, 2);
                        tabellaMesi.setValueAt(" ", i, 3);
                        tabellaMesi.setValueAt(" ", i, 4);
                        i++;

                    } else if (fileListMese.exists() == true) {
                        List<Mese> mese = ricercaMese.findDirectory(dir, pathname.getData());

                        tabellaMesi.setValueAt(mese.get(j).getNomeMese(), i, 0);
                        tabellaMesi.setValueAt(mese.get(j).getMediaMeseIrradianzaG(), i, 1);
                        tabellaMesi.setValueAt(mese.get(j).getMediaMeseIrradianzaGd(), i, 2);
                        tabellaMesi.setValueAt(mese.get(j).getMediaMeseIrradianzaGc(), i, 3);
                        tabellaMesi.setValueAt(mese.get(j).getOreTotaliMese(), i, 4);
                        i++;
                        j++;    
                    }
                }
            }