JavaFx-編寫一個簡單的計算器,實現加減乘除


0.題目描述

編寫一個簡單的計算器,完成加、減、乘、除的功能

 

 

1.源代碼

 

 

import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.layout.HBox;
import javafx.scene.layout.BorderPane;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.control.Button;
import javafx.scene.Scene;
import javafx.geometry.Insets;
import javafx.geometry.Pos;

public class Test2 extends Application {
    private TextField num1 = new TextField();
    private TextField num2 = new TextField();
    private TextField res = new TextField();
    
    private Button btAdd = new Button("Add");
    private Button btSub = new Button("Subtract");
    private Button btMul = new Button("Multiply");
    private Button btDiv = new Button("Divide");
    
    @Override
    public void start(Stage primaryStage) {
        HBox top = new HBox();
        top.setAlignment(Pos.CENTER);
        top.setPadding(new Insets(5,10,5,10));
        top.setSpacing(10);
        
        top.getChildren().addAll(
            new Label("Number1"),
            num1,
            new Label("Number2"),
            num2,
            new Label("Result"),
            res);
        
        HBox bottom = new HBox();
        bottom.setAlignment(Pos.CENTER);
        bottom.setPadding(new Insets(5,10,5,10));
        bottom.setSpacing(10);
        
        bottom.getChildren().addAll(btAdd,btSub,btMul,btDiv);
            
        BorderPane pane = new BorderPane();
        pane.setTop(top);
        pane.setBottom(bottom);    
        
        btAdd.setOnAction(e -> Add());
        btSub.setOnAction(e -> Sub());
        btMul.setOnAction(e -> Mul());
        btDiv.setOnAction(e -> Div());
        
        Scene scene = new Scene(pane, 900, 80);
        primaryStage.setResizable(false);
        primaryStage.setScene(scene);
        primaryStage.setTitle("Calculator");
        primaryStage.show();
        
    }
    
    private void Add() {
        double n1 = Double.parseDouble(num1.getText());
        double n2 = Double.parseDouble(num2.getText());
        res.setText(String.format("%.2f", n1+n2));
    }
    
    private void Sub() {
        double n1 = Double.parseDouble(num1.getText());
        double n2 = Double.parseDouble(num2.getText());
        res.setText(String.format("%.2f", n1-n2));
    }
    
    private void Mul() {
        double n1 = Double.parseDouble(num1.getText());
        double n2 = Double.parseDouble(num2.getText());
        res.setText(String.format("%.2f", n1*n2));
    }
    
    private void Div() {
        double n1 = Double.parseDouble(num1.getText());
        double n2 = Double.parseDouble(num2.getText());
        res.setText(String.format("%.2f", n1/n2));
    }
    
    public static void main(String[] args) {
        Application.launch(args);
    }

}

 

2.運行結果

 

 3.技術總結

  上半部分放入一個HBox中,下半部分放入一個HBox中。在用一個BorderPane裝這兩個HBox。

  難點在於如何獲取TextField中的數值,使用 Double.parseDouble(name.getText()) 將TextField對象name中的文本轉換成double類型數值,name.setText(String.format("%.2f", num)) 設置數值。

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM