parent
e65f08b8c4
commit
ddd192c71c
@ -0,0 +1,127 @@
|
||||
package compute;
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
|
||||
public class SimpleCalculator {
|
||||
|
||||
private JFrame frame;
|
||||
private JTextField inputField;
|
||||
private double num1;
|
||||
private double num2;
|
||||
private String operator;
|
||||
|
||||
public SimpleCalculator() {
|
||||
frame = new JFrame("简单计算器");
|
||||
inputField = new JTextField();
|
||||
inputField.setEditable(false);
|
||||
|
||||
// 创建按钮
|
||||
JButton btn1 = new JButton("1");
|
||||
JButton btn2 = new JButton("2");
|
||||
JButton btn3 = new JButton("3");
|
||||
JButton btn4 = new JButton("4");
|
||||
JButton btn5 = new JButton("5");
|
||||
JButton btn6 = new JButton("6");
|
||||
JButton btn7 = new JButton("7");
|
||||
JButton btn8 = new JButton("8");
|
||||
JButton btn9 = new JButton("9");
|
||||
JButton btn0 = new JButton("0");
|
||||
JButton btnAdd = new JButton("+");
|
||||
JButton btnSubtract = new JButton("-");
|
||||
JButton btnMultiply = new JButton("*");
|
||||
JButton btnDivide = new JButton("/");
|
||||
JButton btnEqual = new JButton("=");
|
||||
JButton btnClear = new JButton("C");
|
||||
|
||||
// 设置布局
|
||||
JPanel panel = new JPanel();
|
||||
panel.setLayout(new GridLayout(4, 4));
|
||||
panel.add(btn7);
|
||||
panel.add(btn8);
|
||||
panel.add(btn9);
|
||||
panel.add(btnDivide);
|
||||
panel.add(btn4);
|
||||
panel.add(btn5);
|
||||
panel.add(btn6);
|
||||
panel.add(btnMultiply);
|
||||
panel.add(btn1);
|
||||
panel.add(btn2);
|
||||
panel.add(btn3);
|
||||
panel.add(btnSubtract);
|
||||
panel.add(btn0);
|
||||
panel.add(btnEqual);
|
||||
panel.add(btnClear);
|
||||
panel.add(btnAdd);
|
||||
|
||||
// 添加事件监听器
|
||||
btn1.addActionListener(e -> appendToInputField("1"));
|
||||
btn2.addActionListener(e -> appendToInputField("2"));
|
||||
btn3.addActionListener(e -> appendToInputField("3"));
|
||||
btn4.addActionListener(e -> appendToInputField("4"));
|
||||
btn5.addActionListener(e -> appendToInputField("5"));
|
||||
btn6.addActionListener(e -> appendToInputField("6"));
|
||||
btn7.addActionListener(e -> appendToInputField("7"));
|
||||
btn8.addActionListener(e -> appendToInputField("8"));
|
||||
btn9.addActionListener(e -> appendToInputField("9"));
|
||||
btn0.addActionListener(e -> appendToInputField("0"));
|
||||
|
||||
btnAdd.addActionListener(e -> setOperator("+"));
|
||||
btnSubtract.addActionListener(e -> setOperator("-"));
|
||||
btnMultiply.addActionListener(e -> setOperator("*"));
|
||||
btnDivide.addActionListener(e -> setOperator("/"));
|
||||
|
||||
btnEqual.addActionListener(e -> calculateResult());
|
||||
btnClear.addActionListener(e -> clearInput());
|
||||
|
||||
// 设置窗体
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
frame.setSize(400, 400);
|
||||
frame.add(inputField, BorderLayout.NORTH);
|
||||
frame.add(panel);
|
||||
frame.setVisible(true);
|
||||
}
|
||||
|
||||
private void appendToInputField(String value) {
|
||||
inputField.setText(inputField.getText() + value);
|
||||
}
|
||||
|
||||
private void setOperator(String op) {
|
||||
num1 = Double.parseDouble(inputField.getText());
|
||||
operator = op;
|
||||
inputField.setText("");
|
||||
}
|
||||
|
||||
private void calculateResult() {
|
||||
num2 = Double.parseDouble(inputField.getText());
|
||||
double result = 0;
|
||||
|
||||
switch (operator) {
|
||||
case "+":
|
||||
result = num1 + num2;
|
||||
break;
|
||||
case "-":
|
||||
result = num1 - num2;
|
||||
break;
|
||||
case "*":
|
||||
result = num1 * num2;
|
||||
break;
|
||||
case "/":
|
||||
if (num2 != 0) {
|
||||
result = num1 / num2;
|
||||
} else {
|
||||
JOptionPane.showMessageDialog(frame, "错误:除数不能为零。");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
inputField.setText(String.valueOf(result));
|
||||
}
|
||||
|
||||
private void clearInput() {
|
||||
inputField.setText("");
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
SwingUtilities.invokeLater(SimpleCalculator::new);
|
||||
}
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
package compute;
|
||||
|
||||
/**
|
||||
* ClassName:javaCompute
|
||||
* Package: compute
|
||||
* Description:
|
||||
* Author Pjj
|
||||
*
|
||||
* @Create 2024/10/10 16:21
|
||||
* @Version 1.0
|
||||
*/
|
||||
public class javaCompute {
|
||||
}
|
Loading…
Reference in new issue