private void btnAbrirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAbrirActionPerformed

        // Codigo de abrir archivo
        if (principal == null) {
            JFileChooser selector = new JFileChooser();
            FileNameExtensionFilter filtro = new FileNameExtensionFilter("Archivos chp", "chp");
            selector.setFileFilter(filtro);
            try {
                if (selector.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
                    fichero = selector.getSelectedFile().toString();
                    FileInputStream fis = new FileInputStream(fichero);
                    ObjectInputStream ois = new ObjectInputStream(fis);
                    //El método readObject() recupera el objeto
                    principal = (Objeto) ois.readObject();
                    ois.close();
                    anio = principal.anio;
                    selectorMes.setSelectedIndex(principal.mesActual);
                    selectorMes.setEnabled(true);
                    btnCalcular.setEnabled(true);
                    File f1 = new File(fichero);
                    this.setTitle(version + " - " + f1.getName());
                    recuperarDatos();
                    mostrarTitulo();
                    mostrarResultado();
                    calcular();
                    principal.guardado = true;
                }
            } catch (HeadlessException | IOException | ClassNotFoundException e) {
                JOptionPane.showMessageDialog(null,
                        "Error al abrir el archivo",
                        "Aviso",
                        JOptionPane.ERROR_MESSAGE);
                fichero = null;
            }

        } else {
            JOptionPane.showMessageDialog(null,
                    "Ya hay un archivo abierto",
                    "Aviso",
                    JOptionPane.INFORMATION_MESSAGE);
        }
    }//GEN-LAST:event_btnAbrirActionPerformed