Java實驗(16) 我的計算器

編程設計如圖所示的界面。要求最後的界面佈局儘可能接近效果圖,不需要實現按鈕功能。


import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.*;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.geometry.Insets;
import javafx.scene.control.*;
import javafx.scene.layout.BorderPane;
import javafx.scene.text.*;

public class MyCalculator extends Application {
    @Override
    public void start(Stage primaryStage) {
        Button btnMC = new Button("MC");
        Button btnMR = new Button("MR");
        Button btnMS = new Button("MS");
        Button btnMa = new Button("M+");
        Button btnMb = new Button("M-");
        Button btnCancel = new Button("<—");
        Button btnCE = new Button("CE");
        Button btnC = new Button("C");
        Button btnOperator = new Button("+/-");
        Button btnChecked = new Button("√");
        Button btndivide = new Button("/");
        Button btnPercent = new Button("%");
        Button btnMulti = new Button("*");
        Button btnx = new Button("1/x");
        Button btnSub = new Button("-");
        Button btnAdd = new Button("+");
        Button btnEqual = new Button("=");
        Button btnDot = new Button(".");
        Button btn9 = new Button("9");
        Button btn8 = new Button("8");
        Button btn7 = new Button("7");
        Button btn6 = new Button("6");
        Button btn5 = new Button("5");
        Button btn4 = new Button("4");
        Button btn3 = new Button("3");
        Button btn2 = new Button("2");
        Button btn1 = new Button("1");
        Button btn0 = new Button("0");
        //設置大小
        btnMC.setPrefSize(40,30);
        btnMR.setPrefSize(40,30);
        btnMS.setPrefSize(40,30);
        btnMa.setPrefSize(40,30);
        btnMb.setPrefSize(40,30);
        btnCancel.setPrefSize(40,30);
        btnCE.setPrefSize(40,30);
        btnC.setPrefSize(40,30);
        btnOperator.setPrefSize(40,30);
        btnChecked.setPrefSize(40,30);
        btndivide.setPrefSize(40,30);
        btnPercent.setPrefSize(40,30);
        btnMulti.setPrefSize(40,30);
        btnx.setPrefSize(40,30);
        btnSub.setPrefSize(40,30);
        btnAdd.setPrefSize(40,30);
        btnDot.setPrefSize(40,30);
        btn3.setPrefSize(40,30);
        btn2.setPrefSize(40,30);
        btn1.setPrefSize(40,30);
        btn9.setPrefSize(40,30);
        btn8.setPrefSize(40,30);
        btn7.setPrefSize(40,30);
        btn6.setPrefSize(40,30);
        btn5.setPrefSize(40,30);
        btn4.setPrefSize(40,30);
        btn0.setPrefSize(80, 30);
        btnEqual.setPrefSize(40,60);
        //設置顏色
        btnMC.setStyle("-fx-base: #fffafa");
        btnMR.setStyle("-fx-base: #fff68f");
        btnMS.setStyle("-fx-base: #ffefd5");
        btnMa.setStyle("-fx-base: #ffe4e1");
        btnMb.setStyle("-fx-base: #ffdead");
        btnCancel.setStyle("-fx-base: #ffc1c1");
        btnCE.setStyle("-fx-base: #ffb90f");
        btnC.setStyle("-fx-base: #ffa54f");
        btnOperator.setStyle("-fx-base: #ff8c00");
        btnChecked.setStyle("-fx-base: #ff7f50");
        btndivide.setStyle("-fx-base: #b4eeb4");
        btnPercent.setStyle("-fx-base: #ffbbff");
        btnMulti.setStyle("-fx-base: #cae1ff");
        btnx.setStyle("-fx-base: #ffe1ff");
        btnSub.setStyle("-fx-base: #e0eeee");
        btnAdd.setStyle("-fx-base: #ebebeb");
        btnDot.setStyle("-fx-base: #e6e6fa");
        btn3.setStyle("-fx-base: #bbffff");
        btn2.setStyle("-fx-base: #bbffff");
        btn1.setStyle("-fx-base: #bbffff");
        btn9.setStyle("-fx-base: #bbffff");
        btn8.setStyle("-fx-base: #bbffff");
        btn7.setStyle("-fx-base: #bbffff");
        btn6.setStyle("-fx-base: #bbffff");
        btn5.setStyle("-fx-base: #bbffff");
        btn4.setStyle("-fx-base: #bbffff");
        btn0.setStyle("-fx-base: #bbffff");
        btnEqual.setStyle("-fx-base: #ffb5c5");
        BorderPane pane = new BorderPane();
        pane.setPadding(new Insets(5,5,5,5));
        //上方顯示窗口
        Text text = new Text("\n\n0");
        text.setFill(Color.BLACK);
        text.setFont(Font.font("黑體"));
        BorderPane windows = new BorderPane();
        windows.setRight(text);
        pane.setTop(windows);
        //中間部分用GridPane       
        GridPane gpane = new GridPane();
        gpane.add(btnMC,0,0);
        gpane.add(btnMR,1,0);
        gpane.add(btnMS,2,0);
        gpane.add(btnMa,3,0);
        gpane.add(btnMb,4,0);
        gpane.add(btnCancel,0,1);
        gpane.add(btnCE,1,1);
        gpane.add(btnC,2,1);
        gpane.add(btnOperator,3,1);
        gpane.add(btnChecked,4,1);
        gpane.add(btn7,0,2);
        gpane.add(btn8,1,2);
        gpane.add(btn9,2,2);
        gpane.add(btndivide,3,2);
        gpane.add(btnPercent,4,2);
        gpane.add(btn4,0,3);
        gpane.add(btn5,1,3);
        gpane.add(btn6,2,3);
        gpane.add(btnMulti,3,3);
        gpane.add(btnx,4,3);
        pane.setCenter(gpane);
        //下方再分爲左右兩邊
        HBox bottom = new HBox();
        //左邊
        BorderPane bpane = new BorderPane();
        //左邊上半部分
        HBox hb = new HBox();
        hb.getChildren().add(btn1);
        hb.getChildren().add(btn2);
        hb.getChildren().add(btn3);
        hb.getChildren().add(btnSub);
        bpane.setTop(hb);
        //左邊下半部分
        HBox hb2 = new HBox();
        hb2.getChildren().add(btn0);
        hb2.getChildren().add(btnDot);
        hb2.getChildren().add(btnAdd);
        bpane.setCenter(hb2);
        //添加
        bottom.getChildren().add(bpane);
        bottom.getChildren().add(btnEqual);
        pane.setBottom(bottom);
        //顯示
        Scene scene = new Scene(pane);
        primaryStage.setTitle("計算器");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    public static void main(String[] args) {
        launch(args);
    }
}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章