JavaFX begginer的简单计算器事件处理

JavaFX begginer的简单计算器事件处理,第1张

JavaFX begginer的简单计算器事件处理

我不会为您做作业,只是一些技巧:

  • 变量名称应以小写字母开头(TextField rezultat,而不是Rezultat)

考虑一下按下按钮时您期望发生的情况:

  • 如果按5’-‘’+‘55,计算器应该怎么做。应该从5中减去还是加55)
  • 您要计算多个 *** 作吗?(5 + 5 + 5 + 5/5)
  • 十进制数呢?(您无法在当前的设计中填写它们)

您可以为每个按钮执行几乎相同的 *** 作(或者至少有10个按钮具有相同的逻辑),您可以循环创建应用程序:

 public class Calculator extends Application { private TextField textField = new TextField(); @Override public void start(Stage primaryStage) {    List<String> buttons = Arrays.asList("7", "8", "9", "+", "4", "5", "6", "-", "1", "2", "3", "*", "0", "=", "/", "EE");    FlowPane pane = new FlowPane();    pane.setAlignment(Pos.CENTER);    pane.setPadding(new Insets(30, 20, 30, 20));    pane.setHgap(5);    pane.setVgap(5);    pane.setMinWidth(400);    pane.setPrefWidth(400);    pane.setMaxWidth(400);    textField.setEditable(false);    textField.setAlignment(Pos.CENTER);    textField.setMinSize(336, 40);    // Rezultat.textProperty().bind(Bindings.format("%.0f", value));    pane.getChildren().add(textField);    for (String button : buttons) {        Button b = new Button(button);        b.setMinSize(80, 80);        pane.getChildren().add(b);        b.setonAction((e) -> doSomething(b.getText()));    }    Scene scene = new Scene(pane);    primaryStage.setTitle("Calculator");    primaryStage.setScene(scene);    primaryStage.show();}private void doSomething(String text) {    if (text.equalsIgnoreCase("=")) {        // Calc    }    else if (text.equalsIgnoreCase("EE")) {        // EE    } else if (text.equalsIgnoreCase("+") || text.equalsIgnoreCase("-") || text.equalsIgnoreCase("*") || text.equalsIgnoreCase("/")) {        // + - * /    }    // ....    else {        // numeric        textField.appendText(text);    }}public static void main(String[] args) {    Application.launch(args);}}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5139416.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存