Java交互界面实现计算器开发设计【附函数源码,Java理论知识

该博客介绍了如何使用Java实现计算器的交互界面,包括加法按键、小数点按钮和等号按钮的设置,并提供了Operation_Clicked函数的源码。此外,博主还分享了收集的大厂Java面试题及详细答案资源。
摘要由CSDN通过智能技术生成
	setOutput = "";

	setOutput +=INumSecond;

	//return setOutput;

}	

}




.



[](https://gitee.com/vip204888/java-p7)操作符点击后数据转换赋值函数

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



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



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



该函数的实现代码如下:



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

public static void Operation_Cliked() {

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

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

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

lastPrecisionNum = 1;

}




.



[](https://gitee.com/vip204888/java-p7)计算器窗口界面函数

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



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



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



[](https://gitee.com/vip204888/java-p7)运算符控件

------------------------------------------------------------------------



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



//设置加法按键+

	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();		//调用操作符点击后数据转换赋值的函数

			

		}

	}); 



[](https://gitee.com/vip204888/java-p7)数字控件

-----------------------------------------------------------------------



当我们点击数字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);	//文本框输出

}

});




其他数字控件与其类似。



[](https://gitee.com/vip204888/java-p7)小数点控件

------------------------------------------------------------------------



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



具体实现代码如下:



//设置小数点按钮

	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;

			}

			

		}

	}); 



[](https://gitee.com/vip204888/java-p7)等号控件

-----------------------------------------------------------------------



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



实现代码如下:



//设置等号按钮

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;

		break;

	case "-":

		IResult = INumFirst - INumSecond;

		break;

	case "*":

		IResult = INumFirst * INumSecond;

		break;

	case "/":

		IResult = INumFirst / INumSecond;

		break;

	case "X2":

		IResult = INumFirst * INumFirst;

		break;

	case "X3":

		IResult = INumFirst * INumFirst * INumFirst;

		break;

	default:

		

		break;

	}

	if (Operation == "X2" )

	{

		setOutput = INumFirst + "*" + INumFirst + "\n";

		String strIResult = java.lang.Double.toString(IResult);

		setOutput2 = strIResult;

		text.setText(setOutput + setOutput2);

最后

我还通过一些渠道整理了一些大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。

资料领取方式:戳这里免费下载

新鲜出炉的蚂蚁金服面经,熬夜整理出来的答案,已有千人收藏

还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。

新鲜出炉的蚂蚁金服面经,熬夜整理出来的答案,已有千人收藏

(setOutput + setOutput2);

最后

我还通过一些渠道整理了一些大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。

资料领取方式:戳这里免费下载

[外链图片转存中…(img-HPo8EhF5-1628341440326)]

还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。

[外链图片转存中…(img-ljhTltP6-1628341440330)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值