public void calcular() {
        Calculo cal = new Calculo(this);
        try {
            tIrpf = Double.parseDouble(txtIrpf.getText());

            if (chkJefeEquipo.isSelected()) {
                JefeEquipo = salarioBase / 10;
            } else {
                JefeEquipo = 0;
            }

            if (chkBuena.isSelected() && chkVieja.isSelected()) {
                tNochebuena = vNochebuena * 2;
            } else if (!chkBuena.isSelected() && !chkVieja.isSelected()) {
                tNochebuena = 0;
            } else {
                tNochebuena = vNochebuena;
            }

            if (radioQuinquenios.isSelected()) {
                tAntiguedad = (Math.floor(antiguedad / 5)) * vQuinquenio;
            } else {
                tAntiguedad = (Math.floor(antiguedad / 3)) * vTrienio;
            }
            // comprobar que esta marcado el prorrateo de pagas extras
            if (chkPagas.isSelected()) {
                // descomentar para el año 2014
                pPagasExtras = ((salarioBase + tAntiguedad + pPeligrosidad /*+ pTransporte + pVestuario*/) * 3) / 12;
            } else {
                pPagasExtras = 0;
            }
            cal.calcular();
            principal.guardado = false;
            insertarDatos();
            recuperarDatos();
            mostrarResultado();
        } catch (NumberFormatException e) {
            txtIrpf.setText("¿Irpf?");
            txtIrpf.requestFocus();
            txtIrpf.selectAll();
        }
    }