我的Java代码错误怎么了:.java.lang.NullPointerException?

时间:2019-09-23 12:19:55

标签: java

这是我的第一个Java项目。运行代码时,出现错误-java.lang.NullPointerException。 代码的本质:用户在单击按钮时在GUI中输入数据,然后在单击按钮时,代码进行处理并将结果显示回界面。 告诉我这个决定错了。非常感谢你!

DataPageController.java

<i>
package Controllers;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Modality;
import javafx.stage.Stage;
import sun.management.snmp.jvmmib.JVM_MANAGEMENT_MIBOidTable;

import java.io.IOException;
import java.net.URL;
import java.util.ResourceBundle;

import static java.lang.Integer.parseInt;
import static java.lang.System.out;

public class DataPageController {

    private Integer iPQd, iPTd, iPQf, iQTf, iPTf, sPQ, sTP, ixPQs, ixFP, ixFOM, ixFFS, K, iPT;
    private Integer iQTd, iRR, vRR, cQRS;
    private Integer chr;


    // Принажатии кнопки идет сбор данных из ячеек + преобразование из текста в число
    public void RunAction(ActionEvent event) {
        DataPageButt.setOnAction(this::results);
    }
    private void results(ActionEvent action) {

        // вводные данные (enter data)
        //считываем данные из ячеек (get data from user)
        try {
            Integer age = parseInt(ageField.getText());
            Integer cQRS = parseInt(cQRSField.getText());
            Integer vRR = parseInt(vRRField.getText());
            Integer iPQQ = parseInt(iPQQField.getText());
            Integer iRR = parseInt(iRRField.getText());
            Integer iST = parseInt(iSTField.getText());
            Integer iQT = parseInt(iQTField.getText());
            Integer tuP = parseInt(tuPField.getText());

            vRR = new Integer(vRR);
            cQRS = new Integer(cQRS);

            // ЧСС вычисляем
            iRR = new Integer(iRR);
            chr = new Integer(chr);

            if (iRR != null && chr != null) {
                Integer chrConst = 60000;
                chr = chrConst / iRR;
            }

            //интервал Q-Td  переменная iQTd
            // K зависит от chr (ЧСС) исследуемой особи

            K = new Integer(K);
            iQTd = new Integer(iQTd);
            if (iQTd != null && K != null) {
                K = chr;

                if (K == 44) {
                    iQTd = 438;
                } else if (K == 45) {
                    iQTd = 434;

                } else if (K == 175) {
                    iQTd = 249;
                }
            }
            //интервал P-Qd  переменная iPQd
            if (iPQd != null && iQTd != null) {

                iPQd = new Integer(iPQd);
                iPQd = (iQTd / 70) * 30;
            }
            //расчет фактических значений iPQf, iQTf, iPTf
            iPQf = new Integer(iPQf);
            iPQQ = new Integer(iPQQ);
            iQTf = new Integer(iQTf);
            iQT = new Integer(iQT);

            if (iPQf != null && iPQQ != null && iQTf != null && iQT != null) {
                iPQf = (iPQQ * 100) / iPQd;
                iQTf = (iQT * 100) / iQTd;
            }
            //интервал P-Td  переменная iPTd проверить правильность формулы расчета iPT
            iPTd = new Integer(iPTd);
            iPT = new Integer(iPT);
            iPTf = new Integer(iPTf);

            if (iPT != null) {
                iPTd = iPQd + iQTd;
                iPT = iPQQ + iQT;
                iPTf = (iPT * 100) / iPTd;
            }
            //сегмент PQ  переменная sPQ
            sPQ = new Integer(sPQ);
            iPQf = new Integer(iPQf);
            tuP = new Integer(tuP);

            if (sPQ != null && tuP != null) {
                sPQ = iPQf - tuP;
            }
            //сегмент T-P  переменная sTP
            sTP = new Integer(sTP);

            if (sTP != null) {
                sTP = iRR - (iPQf + iQTf);
            }
            //индекс PQs  переменная іxPQs результат в процентах
            ixPQs = new Integer(ixPQs);

            if (ixPQs != null && sPQ != null) {
                ixPQs = (sPQ / iPQf) * 100;
            }
            //индекс FP  переменная іxFP
            ixFP = new Integer(ixFP);
            iST = new Integer(iST);

            if (ixFP != null) {
                ixFP = (iST / iPQf) * 100;
            }
            //индекс FOM  переменная іxFOM
            ixFOM = new Integer(ixFOM);

            if (ixFOM != null) {
                ixFOM = (sTP / iRR) * 100;
            }
            //индекс FSS  переменная іxFSS
            ixFFS = new Integer(ixFFS);
            iPTf = new Integer(iPTf);

            if (ixFFS != null) {
                ixFFS = (iPQf / iPTf) * 100;
            }
            // запиливаем данные в ячейки


        } catch (Exception e) {
            out.println(e);
        }
    }
// open new window for results
    //Запуск второго окна по нажатию кнопки "Next"
    public void openResultPage(ActionEvent event) throws IOException {

        Parent root1 = FXMLLoader.load(Main.class.getResource("/Views/ResultPage.fxml"));
        Stage secondStage = new Stage();
        secondStage.initModality(Modality.APPLICATION_MODAL);
        secondStage.setTitle("Result Application");
        secondStage.setScene(new Scene(root1, 600, 600));
        secondStage.show();

        // public void setResources (ResourceBundle resources){
        //     this.resources = resources;


// set results to user GUI
        //try {

//ERROR in THIS BLOCK CODE
            sPQFieldS.setText(String.valueOf(sPQ));///eror on this place
            ixFOMFieldS.setText(String.valueOf(ixFOM));
            iPQdFieldS.setText(String.valueOf(iPQd));
            iQTdFieldS.setText(String.valueOf(iQTd));
            cQRSFieldS.setText(String.valueOf(cQRS));
            sTPFieldS.setText(String.valueOf(sTP));
            іxFPFieldS.setText(String.valueOf(ixFP));
            iPTfFieldS.setText(String.valueOf(iPTf));
            iRRFieldS.setText(String.valueOf(iRR));
            vRRFieldS.setText(String.valueOf(vRR));
            iQTfFieldS.setText(String.valueOf(iQTf));

    }

}
</i>

由以下原因引起:java.lang.NullPointerException     在Controllers.DataPageController.openResultPage(DataPageController.java:532)     ... 58更多

0 个答案:

没有答案