Загрузка данных


package com.example.demo;

import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;

public class HelloController {
    @FXML
    private TextField display;

    private double firstNumber = 0;
    private String operator = "";
    private boolean start = true;

    @FXML
    protected void onDigitClick(ActionEvent event) {
        if (start) {
            display.setText("");
            start = false;
        }
        String value = ((Button)event.getSource()).getText();
        display.setText(display.getText() + value);
    }

    @FXML
    protected void onOperatorClick(ActionEvent event) {
        String value = ((Button)event.getSource()).getText();
        if (!"=".equals(value)) {
            if (!operator.isEmpty()) {
                // Если оператор уже есть, можно добавить логику промежуточного вычисления
                return; 
            }
            operator = value;
            try {
                firstNumber = Double.parseDouble(display.getText());
                start = true;
            } catch (NumberFormatException e) {
                display.setText("Ошибка");
                start = true;
            }
        }
    }

    @FXML
    protected void onClearClick() {
        display.setText("");
        operator = "";
        start = true;
    }

    @FXML
    protected void onResultClick() {
        if (operator.isEmpty()) return;
        
        try {
            double secondNumber = Double.parseDouble(display.getText());
            double result = 0;

            switch (operator) {
                case "+": result = firstNumber + secondNumber; break;
                case "-": result = firstNumber - secondNumber; break;
                case "*": result = firstNumber * secondNumber; break;
                case "/": 
                    if (secondNumber != 0) result = firstNumber / secondNumber;
                    else { display.setText("Деление на 0"); start = true; operator = ""; return; }
                    break;
            }
            display.setText(String.valueOf(result));
            operator = "";
            start = true;
        } catch (NumberFormatException e) {
            display.setText("Ошибка");
            start = true;
            operator = "";
        }
    }
}