java fx 计算器

编程入门 行业动态 更新时间:2024-10-23 14:24:29

java fx <a href=https://www.elefans.com/category/jswz/34/1765079.html style=计算器"/>

java fx 计算器

可惜放学了,明天再整理,先上张图吧:

package com.wk.view;

import com.wk.cal.CalAdd;

import com.wk.cal.CalDiv;

import com.wk.cal.CalMul;

import com.wk.cal.CalSub;

import com.wk.model.Operator;

import javafx.fxml.FXML;

import javafx.scene.control.Button;

import javafx.scene.control.TextField;

/**

* Created by suowei on 2015/10/13.

*/

public class CalcuController {

@FXML Button btnAdd,btnSub,btnMul,btnDiv,btnClear,btnResult;

@FXML Button btnNum1,btnNum2,btnNum3,btnNum4,btnNum5,btnNum6,btnNum7,btnNum8,btnNum9,btnNum0;

@FXML TextField textResult = new TextField();

String num1,num2;

private double n1,n2;

// 实例化计算加法的类

private CalAdd calAdd = new CalAdd();

// 实例化计算减法的类

private CalSub calSub = new CalSub();

// 实例化计算乘法的类

private CalMul calMul = new CalMul();

// 实例化计算除法的类

private CalDiv calDiv = new CalDiv();

// 定义 加减乘除四个字符串 , jdk 7 新特性

final String add ="┼",sub="─",mul="×",div="÷";

// 创建一个cal_operator 作为switch语句的参数

String cal_operator;

public void setbtnAddAction(){

// 此方法是 用户点击+号按钮的方法,当用户点击这个按钮以后,首先要获取到用户输入的文本

num1 = textResult.getText();

// 然后清空,以供用户第二次输入

textResult.setText("");

// 当用户点击 = 号按钮的时候 , switch 语句可以知道 用户执行的是 加法 下面 减法 乘法 ,除法 类似,就不写了

cal_operator = btnAdd.getText();

}

public void setBtnSubAction(){

num1 = textResult.getText();

textResult.setText("");

cal_operator = btnSub.getText();

}

public void setBtnMulAction(){

num1 = textResult.getText();

textResult.setText("");

cal_operator = btnMul.getText();

}

public void setBtnDivAction(){

num1 = textResult.getText();

textResult.setText("");

cal_operator = btnDiv.getText();

}

public void setBtnClearAction(){

// 清空按钮的执行方法,没什么好说的啦 设置文本的值为空

textResult.setText("");

}

public void setBtnResultAction(){

// = 号按钮 的事件方法: 获取用户第二次输入的数字值 将他的值传递给 num2

num2 = textResult.getText();

// 然后清空文本,当程序计算出结果以后 再显示

textResult.setText("");

// 此方法为重中之重 当用点击 加减乘除 四个任意按钮,此方法将会检测到,并执行对应的方

n1 = new Double(num1);

n2 = new Double(num2);

OperationFactory factory = new OperationFactory();

factory.createOperation(cal_operator);

}

public void finalCaluator(String operator) {

// 实例化 计算 加减乘除 方法的参数 n1,n2, 把 用户第一次和第二次输入的值分别付给他们

/* switch (operator){

// 当用户选择 + 号按钮时执行的方法. 以下相似

case add: textResult.setText(calAdd.getResult(n1,n2).toString());

break; //这里替换成为工厂模式,利用工厂模式来 实例化对象;

case sub: textResult.setText(calSub.getResult(n1,n2).toString());

break;

case mul: textResult.setText(calMul.getResult(n1,n2).toString());

break;

case div: checkDivNumAction();

textResult.setText(calDiv.getResult(n1,n2).toString());

break;

}*/

}

public void setBtnNum0Action(){

// 按钮 0 的事件

textResult.setText(textResult.getText()+"0");

}

public void setBtnNum1Action(){

// 按钮 1 的事件

textResult.setText(textResult.getText()+"1");

}

public void setBtnNum2Action(){

// 按钮 2 的事件

textResult.setText(textResult.getText()+"2");

}

public void setBtnNum3Action() {

// 按钮 3 的事件

textResult.setText(textResult.getText()+"3");

}

public void setBtnNum4Action(){

// 按钮 4 的事件

// 以下类似太累了,就不写了...

textResult.setText(textResult.getText()+"4");

}

public void setBtnNum5Action(){

textResult.setText(textResult.getText()+"5");

}

public void setBtnNum6Action(){

textResult.setText(textResult.getText()+"6");

}

public void setBtnNum7Action(){

textResult.setText(textResult.getText()+"7");

}

public void setBtnNum8Action(){

textResult.setText(textResult.getText()+"8");

}

public void setBtnNum9Action() {

textResult.setText(textResult.getText()+"9");

}

/**

* 工厂一的参数传递方式决定了它只能在 -----类n内使用

*/

class OperationFactory {

public Operator createOperation(String operator){

final String add ="┼",sub="─",mul="×",div="÷";

Operator operator1 = null;

switch (operator){

case add: operator1 = new CalAdd();

textResult.setText(operator1.getResult(n1, n2).toString());

break;

case sub: operator1 = new CalSub();

textResult.setText(operator1.getResult(n1,n2).toString());

break;

case mul: operator1 = new CalMul();

textResult.setText(operator1.getResult(n1,n2).toString());

break;

case div: operator1 = new CalDiv();

textResult.setText(operator1.getResult(n1,n2).toString());

break;

}

return operator1;

}

}

/**

*

*/

}

这个是控制器代码,感兴趣的可以自己研究的啦..

更多推荐

java fx 计算器

本文发布于:2024-03-09 10:24:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1724722.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:计算器   java   fx

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!