Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №2132440
А
Аноним
07 ноября 2024 13:14 · публичный вопрос
А
Аноним

напиши код на java используя JFrame для создания калькулятора

Ответ нейросети
07 ноября 2024 13:14

Конечно! Давайте создадим простой калькулятор на Java, используя библиотеку Swing и класс JFrame. В этом примере мы реализуем базовую функциональность для выполнения простых арифметических операций: сложения, вычитания, умножения и деления.

Вот пример кода, который вы можете использовать:

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Calculator extends JFrame implements ActionListener {
    private JTextField inputField;
    private double firstNum;
    private double secondNum;
    private String operation;

    public Calculator() {
        // Настройка JFrame
        setTitle("Калькулятор");
        setSize(400, 600);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());

        inputField = new JTextField();
        inputField.setFont(new Font("Arial", Font.PLAIN, 30));
        inputField.setEditable(false);
        add(inputField, BorderLayout.NORTH);

        JPanel buttonPanel = new JPanel();
        buttonPanel.setLayout(new GridLayout(4, 4));

        // Создаем кнопки
        String[] buttons = {
            "7", "8", "9", "/",
            "4", "5", "6", "*",
            "1", "2", "3", "-",
            "0", "C", "=", "+"
        };

        for (String text : buttons) {
            JButton button = new JButton(text);
            button.addActionListener(this);
            buttonPanel.add(button);
        }

        add(buttonPanel, BorderLayout.CENTER);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        String command = e.getActionCommand();

        if ("C".equals(command)) {
            // Очистка поля
            inputField.setText("");
            firstNum = 0;
            secondNum = 0;
            operation = "";
        } else if ("=".equals(command)) {
            secondNum = Double.parseDouble(inputField.getText());
            switch (operation) {
                case "+":
                    inputField.setText(String.valueOf(firstNum + secondNum));
                    break;
                case "-":
                    inputField.setText(String.valueOf(firstNum - secondNum));
                    break;
                case "*":
                    inputField.setText(String.valueOf(firstNum * secondNum));
                    break;
                case "/":
                    inputField.setText(String.valueOf(firstNum / secondNum));
                    break;
            }
            firstNum = 0;
            secondNum = 0;
            operation = "";
        } else {
            if (operation.isEmpty()) {
                firstNum = Double.parseDouble(inputField.getText());
                operation = command;
                inputField.setText("");
            } else {
                secondNum = Double.parseDouble(inputField.getText());
                switch (operation) {
                    case "+":
                        firstNum += secondNum;
                        break;
                    case "-":
                        firstNum -= secondNum;
                        break;
                    case "*":
                        firstNum *= secondNum;
                        break;
                    case "/":
                        firstNum /= secondNum;
                        break;
                }
                operation = command;
                inputField.setText("");
            }
        }
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            Calculator calculator = new Calculator();
            calculator.setVisible(true);
        });
    }
}

Объяснение кода:

  1. Импорт библиотек: Мы используем Swing для создания графического интерфейса.
  2. Класс Calculator: Это основной класс, который расширяет JFrame и реализует интерфейс ActionListener для обработки событий кнопок.
  3. Компоненты интерфейса: Мы создаем текстовое поле для ввода и панель с кнопками для операций.
  4. Метод actionPerformed: Этот метод обрабатывает нажатия кнопок, выполняя соответствующие операции и обновляя отображение в текстовом поле.
  5. Основной метод: Запускает приложение и делает его видимым.

Попробуйте запустить этот код в вашей среде разработки, и вы получите простой калькулятор! Если у вас возникнут вопросы по коду или его работе, не стесняйтесь спрашивать.