我不会为您做作业,只是一些技巧:
- 变量名称应以小写字母开头(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);}}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)