JavaFx——计算器的实现

实现目标

在这里插入图片描述如上,实现一个这样的计算器的功能

代码结构

在这里插入图片描述

全部代码

一个Main类

package ComputerTest;

import java.util.LinkedList;

import javafx.application.Application;
import javafx.event.Event;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.image.Image;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.GridPane;
import javafx.scene.text.Font;
import javafx.stage.Stage;

public class Main extends Application {
   
	private String logic;//存运算符的变量 null
	private TextField view;
	private String out="";
	public void start(Stage primaryStage) {
   
		try {
   
			AnchorPane root = new AnchorPane();
			Scene scene = new Scene(root);
			primaryStage.setScene(scene);
			primaryStage.setWidth(300);
			primaryStage.setHeight(420);
			primaryStage.setResizable(false);
			addComp(root);
			primaryStage.getIcons().add(new Image("ComputerTest/computer.png", 256, 256, true, true));
		        primaryStage.setTitle("Calculator");
			primaryStage.show();
		} catch(Exception e) {
   
			e.printStackTrace();
		}
	}
	
	//添加组件的方法
	private void addComp(AnchorPane root) {
   
		//添加显示框
		view = new TextField("0");
		view.setMinSize(280, 50);
		view.setLayoutX(10);
		view.setLayoutY(15);
		//设置只读
		view.setEditable(false);
		//内容右对齐
		view.setAlignment(Pos.CENTER_RIGHT);
		//设置字体
		view.setFont(new Font("华文琥珀", 20));
		root.getChildren().add(view);
		
		//添加一个表格布局
		GridPane gridPane = new GridPane();
		//设置布局中元素组件横向间距
		gridPane.setHgap(1);
		//设置布局中元素组件纵向间距
		gridPane.setVgap(1);
		gridPane.setLayoutY(65);
		gridPane.setPrefWidth(290);
		gridPane.setPrefHeight(300);
		gridPane.setPadding(new Insets(10));
		//列容器
		root.getChildren().add(gridPane);
		
		//创建数字监听器对象
		NumberEvent numberEvent = new NumberEvent();
		//添加按钮
		Button btn_7 = new MyButton("7");
		btn_7.setOnMouseClicked(numberEvent);
		gridPane.add(btn_7,0,1);
		
		Button btn_8 = new MyButton("8");
		btn_8.setOnMouseClicked(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值