From f0d66eee759a54fdd3652c67e7e3b76608969f20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=A5=95=E8=A1=A1?= <1301026953@qq.com> Date: Thu, 17 Oct 2024 16:27:27 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E7=AE=80=E6=98=93=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E5=99=A801?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _02/src/Calculator.java | 139 +++++++++++++++++----------- out/production/_02/Calculator.class | Bin 2367 -> 4530 bytes 2 files changed, 85 insertions(+), 54 deletions(-) diff --git a/_02/src/Calculator.java b/_02/src/Calculator.java index 20880a7..5d962a1 100644 --- a/_02/src/Calculator.java +++ b/_02/src/Calculator.java @@ -1,69 +1,100 @@ -import java.util.Scanner; +import javafx.application.Application; +import javafx.geometry.Insets; +import javafx.scene.Scene; +import javafx.scene.control.Button; +import javafx.scene.control.TextField; +import javafx.scene.layout.GridPane; +import javafx.scene.layout.VBox; +import javafx.stage.Stage; -public class Calculator { - // 加法 - public static double add(double num1, double num2) { - return num1 + num2; - } +public class Calculator extends Application { + private TextField display; + private double result = 0; + private String lastCommand = "="; + private boolean start = true; + @Override + public void start(Stage primaryStage) { + // 创建显示区域 + display = new TextField("0"); + display.setEditable(false); + display.setPrefColumnCount(15); - // 减法 - public static double subtract(double num1, double num2) { - return num1 - num2; - } + // 创建按钮 + GridPane grid = new GridPane(); + grid.setPadding(new Insets(10)); + grid.setHgap(10); + grid.setVgap(10); - // 乘法 - public static double multiply(double num1, double num2) { - return num1 * num2; - } + // 按钮布局 + String[][] buttonLayout = { + {"7", "8", "9", "/"}, + {"4", "5", "6", "*"}, + {"1", "2", "3", "-"}, + {"0", ".", "=", "+"} + }; - // 除法 - public static double divide(double num1, double num2) { - if (num2 == 0) { - throw new IllegalArgumentException("除数不能为零"); + for (int i = 0; i < 4; i++) { + for (int j = 0; j < 4; j++) { + Button button = new Button(buttonLayout[i][j]); + button.setOnAction(e -> processButtonPress(button.getText())); + grid.add(button, j, i); + } } - return num1 / num2; - } - public static void main(String[] args) { - Scanner scanner = new Scanner(System.in); + // 创建主布局 + VBox root = new VBox(); + root.setPadding(new Insets(10)); + root.setSpacing(10); + root.getChildren().addAll(display, grid); - System.out.println("请输入第一个数字:"); - double num1 = scanner.nextDouble(); + // 创建场景 + Scene scene = new Scene(root, 300, 300); - System.out.println("请输入第二个数字:"); - double num2 = scanner.nextDouble(); + // 设置舞台 + primaryStage.setTitle("简易计算器"); + primaryStage.setScene(scene); + primaryStage.show(); + } - System.out.println("请选择操作 (+, -, *, /):"); - String operator = scanner.next(); + private void processButtonPress(String command) { + if (command.matches("[0-9]")) { + if (start) { + display.setText(command); + start = false; + } else { + display.setText(display.getText() + command); + } + } else if (command.equals(".")) { + if (start) { + display.setText("0."); + start = false; + } else if (!display.getText().contains(".")) { + display.setText(display.getText() + "."); + } + } else { + calculate(Double.parseDouble(display.getText())); + lastCommand = command; + start = true; + } + } - double result; - switch (operator) { - case "+": - result = add(num1, num2); - break; - case "-": - result = subtract(num1, num2); - break; - case "*": - result = multiply(num1, num2); - break; - case "/": - try { - result = divide(num1, num2); - } catch (IllegalArgumentException e) { - System.out.println(e.getMessage()); - return; - } - break; - default: - System.out.println("无效的操作符"); - return; + private void calculate(double n) { + if (lastCommand.equals("+")) { + result += n; + } else if (lastCommand.equals("-")) { + result -= n; + } else if (lastCommand.equals("*")) { + result *= n; + } else if (lastCommand.equals("/")) { + result /= n; + } else { + result = n; } + display.setText(String.format("%.0f", result)); + } - System.out.println("结果: " + num1 + " " + operator + " " + num2 + " = " + result); - scanner.close(); + public static void main(String[] args) { + launch(args); } } - -//hhhh diff --git a/out/production/_02/Calculator.class b/out/production/_02/Calculator.class index 39fc553a3837483ec83bf185dab3474a44ef1114..940e59bb5b550c0836f67d30d6e9ab97e195940b 100644 GIT binary patch literal 4530 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 CBZ}() literal 2367 zcmai0S!@$m6g|&&Jd??Uglr^0z)+Gp8(~d@lZGW>NgI|n6bN*iI8$d}VjFu*p>&}I zs#Yyu2q7q{`q35@QBnACA|mKdzbd4DR_Z6p0v||-|3c3j8*B&_j^2Cs-goc0>l@|I zhu3ccScNY&)M2xNEh>67c<`En*9*~ytr`ljO;X!c?9lKA-jtGl6+2bDCCObHc4Lo< z0eS9Ku}{U@D&Ens1n(l8I3RhaVpKyDEg!zwIE?w7C!6xa$z z1pJ*=)N;B6yupTD0>19pkSS2oXGP6zsgXf5vC|l|DJkoVg$;X`k+3A675bcED=DD& zbsKg#WgAW`(Lp3*Xh@(S*wfR{L&RumWVwLIk}Cw%WNOe!7-5IxNXmAsxP63y3|WUP z>ASe!F~SG78u7DwIQVA zBOGPoIzGlHY)6xhPw^Rv7OqCFRvj%^s$+%RR?2Oa+>YTW^P4*R!_=9trq7?qKu=%( zSzu1CGMR>NNLluf?2I}+etPQr3!#9H&+&!aj?+Pa!xwm!vJ*I}P!{9h0xeBPX*mqi)4od!zA`Lm1N-;ha=wah|!5P~KRI zzH^2=w!8Bgw7 zbz+ZeUJ$lpNfV3s9joIP6YxXG*TFqVu9c_YSCVMgdJ|CRZpY zEogt;lA&+O-m; zOt}rOWZZaCbfW{JdmIG=*We$8(svDNSz#JlQyN9RlF_rw8lU8fGu*6@zs4Ub^t5R; zR4%zhbpA{(*{W8qEnKp*Qr4b5_tX@Ym8LQK9NN5X+C?lQU*_`lKFJ5jm%Dsbf#gfc zSGc_2-=uz`ID*Fa!DU6xw?YYzA;p;Q7)pxC95R4%q8bYvd$%|B{?@##9V5M z(x_oNS7lyvv&1;&4UA%bS#25%f@v%)3y`Ssb91R`pOh^kTdj~vV{xV)FI{CxCvgw= zIaQhN46-A@d=y~;%CV5#A_TCQL%)Q5uH&aMh(B1aTb$^>IL&`k`VXh_Haj-S+j}hA zeXPa>)aYADu$MTG54dVguH@#g5a%E&6PytwNN?)a@tKy(iQIwtEdiv|!WG zflfwPB--&Rx)^`8XmaPqgL+Zx&W#VNL Date: Thu, 17 Oct 2024 16:32:08 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E7=AE=80=E6=98=93=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E5=99=A801?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _02/src/Calculator.java | 100 ++++++++++++++++++++++++++++ out/production/_02/Calculator.class | Bin 4530 -> 0 bytes 2 files changed, 100 insertions(+) create mode 100644 _02/src/Calculator.java delete mode 100644 out/production/_02/Calculator.class diff --git a/_02/src/Calculator.java b/_02/src/Calculator.java new file mode 100644 index 0000000..5d962a1 --- /dev/null +++ b/_02/src/Calculator.java @@ -0,0 +1,100 @@ +import javafx.application.Application; +import javafx.geometry.Insets; +import javafx.scene.Scene; +import javafx.scene.control.Button; +import javafx.scene.control.TextField; +import javafx.scene.layout.GridPane; +import javafx.scene.layout.VBox; +import javafx.stage.Stage; + +public class Calculator extends Application { + private TextField display; + private double result = 0; + private String lastCommand = "="; + private boolean start = true; + + @Override + public void start(Stage primaryStage) { + // 创建显示区域 + display = new TextField("0"); + display.setEditable(false); + display.setPrefColumnCount(15); + + // 创建按钮 + GridPane grid = new GridPane(); + grid.setPadding(new Insets(10)); + grid.setHgap(10); + grid.setVgap(10); + + // 按钮布局 + String[][] buttonLayout = { + {"7", "8", "9", "/"}, + {"4", "5", "6", "*"}, + {"1", "2", "3", "-"}, + {"0", ".", "=", "+"} + }; + + for (int i = 0; i < 4; i++) { + for (int j = 0; j < 4; j++) { + Button button = new Button(buttonLayout[i][j]); + button.setOnAction(e -> processButtonPress(button.getText())); + grid.add(button, j, i); + } + } + + // 创建主布局 + VBox root = new VBox(); + root.setPadding(new Insets(10)); + root.setSpacing(10); + root.getChildren().addAll(display, grid); + + // 创建场景 + Scene scene = new Scene(root, 300, 300); + + // 设置舞台 + primaryStage.setTitle("简易计算器"); + primaryStage.setScene(scene); + primaryStage.show(); + } + + private void processButtonPress(String command) { + if (command.matches("[0-9]")) { + if (start) { + display.setText(command); + start = false; + } else { + display.setText(display.getText() + command); + } + } else if (command.equals(".")) { + if (start) { + display.setText("0."); + start = false; + } else if (!display.getText().contains(".")) { + display.setText(display.getText() + "."); + } + } else { + calculate(Double.parseDouble(display.getText())); + lastCommand = command; + start = true; + } + } + + private void calculate(double n) { + if (lastCommand.equals("+")) { + result += n; + } else if (lastCommand.equals("-")) { + result -= n; + } else if (lastCommand.equals("*")) { + result *= n; + } else if (lastCommand.equals("/")) { + result /= n; + } else { + result = n; + } + display.setText(String.format("%.0f", result)); + } + + public static void main(String[] args) { + launch(args); + } +} diff --git a/out/production/_02/Calculator.class b/out/production/_02/Calculator.class deleted file mode 100644 index 940e59bb5b550c0836f67d30d6e9ab97e195940b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4530 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 CBZ}()