Конечно! Давайте создадим простой калькулятор на 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);
});
}
}
Объяснение кода:
- Импорт библиотек: Мы используем Swing для создания графического интерфейса.
- Класс Calculator: Это основной класс, который расширяет JFrame и реализует интерфейс ActionListener для обработки событий кнопок.
- Компоненты интерфейса: Мы создаем текстовое поле для ввода и панель с кнопками для операций.
- Метод actionPerformed: Этот метод обрабатывает нажатия кнопок, выполняя соответствующие операции и обновляя отображение в текстовом поле.
- Основной метод: Запускает приложение и делает его видимым.
Попробуйте запустить этот код в вашей среде разработки, и вы получите простой калькулятор! Если у вас возникнут вопросы по коду или его работе, не стесняйтесь спрашивать.