У меня есть исключение нулевого указателя в моей программе javafx. Я правильно читаю текст? - PullRequest
0 голосов
/ 13 марта 2020

Я использую обработчик нажатия кнопки, чтобы вызвать кнопку и прочитать текст. Правильно ли я читаю текст, я получаю исключение нулевого указателя для myTextfields . Я надеялся, что кто-то может помочь, я думаю, что это также может быть связано с тем, что я использую сетку. Нужно ли инициализировать gridPane?

public class Main extends Application {

    private TextField myTextField, myTextField2;
    private Label resultLabel;

    public static void main(String[] args) {
        launch(args);
    }
    @Override
    public void start(Stage primaryStage) {
        try {

            Button myButton = new Button("Calculate");
            myButton.setOnAction(new ButtonClickHandler());

            Label messageLabel = new Label("Hours Worked?");
            Label messageLabel2 = new Label("Pay Rate?"); 



            TextField myTextField = new TextField();
            TextField myTextField2 = new TextField();

            BorderPane root = new BorderPane();

            GridPane gridpane = new GridPane();
            gridpane.add(messageLabel, 0,0);
            gridpane.add(messageLabel2, 0,1);
            gridpane.add(myButton, 3,3);
            gridpane.add(myTextField, 3,0);
            gridpane.add(myTextField2, 3,1);

            gridpane.setHgap(10);
            Scene scene = new Scene(root,400,400);
            Scene scene2 = new Scene(gridpane,400,400);
            gridpane.setVgap(10);
            //gridpane.setGridLinesVisible(true);
            scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
            primaryStage.setScene(scene);
            primaryStage.setScene(scene2);
            primaryStage.setTitle("Wage pay");
            primaryStage.show();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

    class ButtonClickHandler implements EventHandler <ActionEvent>{
        @Override
        public void handle(ActionEvent event) {
            int hours = Integer.parseInt(myTextField.getText());
            int pay = Integer.parseInt(myTextField2.getText()); 
            int calculation = hours * pay;
            resultLabel.setText(String.format("%.2f", calculation));
            resultLabel.setText("thank you");
        }
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...