ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java交互界面实现计算器开发设计【附函数源码】,java反射原理hash

2021-11-09 11:30:53  阅读:118  来源: 互联网

标签:控件 Java 小数点 num 点击 源码 操作符 java 我们


在这里我们需要首先定义私有的全局变量来接收在计算器运行过程中的一些变量,如输入的数值、小数点、操作符、输出框内容、计算结果等,因此对于在计算器使用过程中可能出现的变量要对其进行一一接收。在这里我们使用setOutput表示文本框第一行输出的内容,使用setOutput2表示文本框第二行输出的内容。

private static String setOutput = “”; //定义文本框输出第一行

private static String setOutput2 = “”; //定义文本框输出第二行

private static double INumFirst = 0.0; //获取第一次输入的数值

private static double INumSecond = 0.0; //获取第二次输入的数值

private static double IResult = 0.0; //定义结果

private static String Operation = “”; //定义操作符

private static boolean OperationCliked = false; //定义布尔类型判断操作符是否单击

private static boolean DotCliked = false; //定义布尔类型判断小数点是否单击

private static double lastPrecisionNum = 1; //定义小数点最后一位的精度为1

private static double ControlNum = 0; //获取当前控件的数值

同时在进行程序开发前,我们就应该先对项目的整个架构进行设计,考虑到程序在开发过程中需要哪些函数、实现哪些功能、需要用到怎样的方法等。

就比如拿今天开发的这个计算器来说,我们需要有最基本的主函数,控件触发时的集中处理函数(因为我们不可能对计算器上的每一个控件设置一个处理函数,这样会增大程序的复杂度)、操作符触发时的处理函数、实现计算器界面布局的函数。同时还应该对计算器的整个界面布局进行设计,这是大灰狼在这个程序中设计的计算器界面,可以参考:

在这里插入图片描述

在我们有了这样的总体设计之后,就是我们针对于各个函数功能的详细设计了。

.

控件触发时集中处理函数

==============================================================================

首先是定义控件触发时的集中处理函数,该函数的功能上可以根据实际情况分为两部分,第一部分是在我们没有点击运算操作符前,点击数字控件所触发的事件,也就是我们在输入一个数值时要做的事情;第二部分是我们在点击了运算操作符之后再点击数字控件时所触发的事件,按照实际情况,这时我们输入的数值应该是要计算的第二个数值。

与此同时,每一部分也需要根据是否点击小数点而分为两种操作,如果点击了小数点,则说明将要输入的数字是小数点后的,则要做相应的处理;若没有点击小数点,则说明此时输入的为整数位,应该让相应的数值乘以10。

该函数的具体实现代码如下:

//定义控件触发时集中处理函数

public static void Numbers_Cliked() {

//如果点击在运算操作符

if (OperationCliked) {

//如果点击了小数点

if (DotCliked) {

lastPrecisionNum *=0.1;

double strDotnum = ControlNum*lastPrecisionNum;

INumSecond += strDotnum;

}

else {

INumSecond = INumSecond*10 + ControlNum;

}

setOutput2 = “”;

setOutput2 +=INumSecond;

//return setOutput2;

}

//如果没有点击运算操作符

else {

if (DotCliked) {

lastPrecisionNum *=0.1;

double strDotnum = ControlNum*lastPrecisionNum;

INumSecond += strDotnum;

}

else {

INumSecond = INumSecond*10 + ControlNum;

}

setOutput = “”;

setOutput +=INumSecond;

//return setOutput;

}

}

.

操作符点击后数据转换赋值函数

=================================================================================

当我们点击了运算操作符之后,说明我们的第一个数据已经输入完成了,这个时候,我们将要输入的是第二个数据,这时候我们就需要进行数据的赋值转换,因为我们最开始的时候是使用INumsecand这个变量来接收数据的,所以在点击运算操作符之后,我们需要将INumsecand的值赋给INumfirst,并将INumsecand的值赋于0,重新接收第二个数据。

你可能会问,为什么不直接使用INumfirst接收第一个数据,使用INumsecand接收第二个数据,原因是因为,当你点击数字控件时,我们无法判断你输入的数据是第一个数据还是第二个数据,我们只能将你输入的数据统一的赋值给某一个变量,在这里这个变量就是INumsecand,只有我们判断到当点击了运算操作符之后,说明我们的上一个数据已经输入完成了,这时候才需要我们将INumsecand赋值给INumfirst,来说明我们得到了第一个数据。

该函数的实现代码如下:

//定义操作符点击后数据转换赋值的函数

public static void Operation_Cliked() {

INumF

【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】

浏览器打开:qq.cn.hn/FTf 免费领取

irst = INumSecond; //将第一次键入的值赋给第一个数

INumSecond = 0; //将接收输入数值的变量赋值于0

DotCliked = false; //将布尔型小数点变量赋初值为:未点击

lastPrecisionNum = 1;

}

.

计算器窗口界面函数

============================================================================

在这两个函数完成之后,就是我们计算器的界面设计函数了,

在该函数中,我们需要对计算器的整体界面进行布局设计,同时还需要对每一个控件添加监控,当我们点击相应的控件的时候,可以触发相应的事件操作。

运算符控件


如我们点击加法按键时,需要将我们第一次输入的数据和加法运算符输出出来,并且调用操作符点击后数据转换赋值的函数,来进行数据的赋值转换。

//设置加法按键+

JButton add_bt = new JButton("+");

add_bt.setBounds(5, 110, 80, 40);

add_bt.setFont(font);

container.add(add_bt);

//添加单击监控

add_bt.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

// TODO Auto-generated method stub

Operation = “+”;

setOutput += Operation + “\n”;

text.setText(setOutput); //数值和运算符输出

OperationCliked = true;

Operation_Cliked(); //调用操作符点击后数据转换赋值的函数

}

});

数字控件


当我们点击数字0-9时,说明我们正在进行数值的输入,这个时候就需要获取到相应控件上的数值,并且调用控件触发时集中处理函数,将我们键入的数字进行赋值。

以控件数字7为例,在这里我使用num_7.getText()来获取当前所点击控件的文本,其实这是比较笨的一种方法,需要对每一个控件使用该函数,还有一种方法是获取当前焦点所在的控件,并且获取其文本,对这种方法熟悉的小伙伴可以留言大灰狼一起交流。

下面是数字7控件的相应触发代码:

JButton num_7 = new JButton(“7”);

num_7.setBounds(5, 200, 80, 40);

num_7.setFont(font);

container.add(num_7);

num_7.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

// TODO Auto-generated method stub

String strNum = num_7.getText();

ControlNum = java.lang.Double.parseDouble(strNum);

Numbers_Cliked(); //调用数值控件触发集中处理函数

text.setText(setOutput + setOutput2); //文本框输出

}

});

其他数字控件与其类似。

小数点控件


当我们点击小数点的时候,说明我们输入的数据存在小数位,这个时候我们就需要对其作出相应的操作,如我们在点击运算操作符之前点击的小数点控件,则将小数点显示在文本框的第一行,表示第一个数是一个小数,如果我们是在点击运算操作符之后点击的小数点控件,则需要将小数点显示在文本框的第二行,表示我们输入的第二个数是小数。

具体实现代码如下:

//设置小数点按钮

JButton num_dot = new JButton(".");

num_dot.setBounds(175, 335, 80, 40);

num_dot.setFont(font);

container.add(num_dot);

num_dot.addFocusListener(new FocusListener() {

@Override

public void focusLost(FocusEvent arg0) {

// TODO Auto-generated method stub

}

@Override

public void focusGained(FocusEvent arg0) {

// TODO Auto-generated method stub

if (OperationCliked) {

setOutput2 += “.”;

text.setText(setOutput + setOutput2);

DotCliked = true;

}

else {

setOutput += “.”;

text.setText(setOutput + setOutput2);

DotCliked = true;

}

}

});

等号控件


当我们点击等号控件的时候,说明我们的数据和运算符的输入已经完成了,接下来我们就只需要根据我们键入的运算符进行判断,并进行相应的运算即可,同时在得到结果之后,我们还应将之前定义的所有变量赋予初值,方便我们进行下次输入。

实现代码如下:

//设置等号按钮

JButton num_equ = new JButton("=");

num_equ.setBounds(260, 110, 80, 130);

num_equ.setFont(font);

container.add(num_equ);

num_equ.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

// TODO Auto-generated method stub

switch (Operation) {

case “+”:

IResult = INumFirst + INumSecond;

标签:控件,Java,小数点,num,点击,源码,操作符,java,我们
来源: https://blog.csdn.net/m0_63102527/article/details/121224434

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有