java课内趣味小实验--计算器calc

java课内趣味小实验--计算器calc

    任何剽窃行为都是可耻的,你可以学习交流,但不好把别人的代码拿过来,说这是你自己写的。

    愿祖国加速富强……

实验四 带事件的图形界面

一、实验目的

掌握编写图形界面的一般方法,包括文本输入框、按钮、标签、布局管理器、授权事件模型的使用。

二、实验环境

PC系列微机,Windows XP。

JDK150或更高版本。

三、实验内容

编写一个计算两个数相加的加法器,要求:

1、提供输入两个加数的文本输入框。

2、一个表示“+”的标签

3、一个“=”按钮

4、一个保存两数相加的和的文本框

当单击等号按钮时,能够计算出两数的和并显示到第三个文本框,同时能够判断两个加数是否是合法,即都是数字。

界面参考如下:

提示:

1、使用FlowLayout布局管理器

2、判断输入的是不是数字可以单独编写一个方法boolean isNumber(String

s),在输入框的FocusEvent事件的focusLost方法中调用isNumber。

在isNumber方法中应该循环取出s中的每一个字符,判断是否大于57或小于48(因为0的ascii码是48,9的ascii码是57),如果符合条件则可以说明不是数字,否则就是合法数字。

3、给等号按钮添加ActionListener事件,并实现actionPerformed方法,在该方法中取出前两个输入的值并转换成int或double型数据,相加后放入和的文本输入框中。

四、实验报告

写出合格的实验报告,至少包括实验目的、实验内容(程序代码)、出现的问题、学到的知识等。


code:

package javaExp4$;

import java.awt.Button;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class CalcDemo extends Frame {
	TextField a1,a2,ans;
	Label lblE,lblInstruction,lblI2;
	Button btnAdd,btnSub,btnMul,btnDiv;
	Panel p;
	CalcDemo(){
		init();
	}
	private void init(){
		this.setTitle("计算器[1.1.1](操作数必为整型)");
		p=new Panel();//152,64,102苹果红;102,64,152亮紫
		p.setLayout(new FlowLayout());
		p.setBackground(Color.CYAN);
		a1=new TextField(6);
		a2=new TextField(6);
		ans=new TextField(20);
		lblE=new Label("=");
		lblE.setBackground(new Color(152,64,102));
		lblE.setForeground(Color.YELLOW);
		lblInstruction=new Label("此计算器功能已初步完善,较上一版本改进了 主要功能缺失、结果框不应输入等问题");
		lblI2=new Label("   [1.1.1]版较上一版本改进了背景色、前景色的设置");
		//lblI2.setFont(Font.getFont("华文细黑"));
		btnAdd=new Button("+");
		btnAdd.setBackground(new Color(102,64,152));
		btnAdd.setForeground(Color.YELLOW);
		btnAdd.setFont(Font.getFont("华文细黑"));
		btnSub=new Button("-");
		btnSub.setBackground(new Color(102,64,152));
		btnSub.setForeground(Color.YELLOW);
		btnMul=new Button("*");
		btnMul.setBackground(new Color(102,64,152));
		btnMul.setForeground(Color.YELLOW);
		btnDiv=new Button("/");
		btnDiv.setBackground(new Color(102,64,152));
		btnDiv.setForeground(Color.YELLOW);
		ans.addFocusListener(new Control(this));
		btnAdd.addActionListener(new Calc(this));
		btnSub.addActionListener(new Calc(this));
		btnMul.addActionListener(new Calc(this));
		btnDiv.addActionListener(new Calc(this));
		p.add(a1);
		p.add(btnAdd);
		p.add(btnSub);
		p.add(btnMul);
		p.add(btnDiv);
		p.add(a2);
		p.add(lblE);
		p.add(ans);
		p.add(lblInstruction);
		p.add(lblI2);
		this.add(p);
		this.addWindowListener(new ShutDown());
		this.setSize(800, 300);
		this.setVisible(true);
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		CalcDemo cd1=new CalcDemo();
//		FocusAdapter fa=new FocusAdapter();
//		fa.focusGained(null);
	}
}
class Calc implements ActionListener{
	CalcDemo c;
	String c1,c2;
	Calc(CalcDemo c){
		this.c=c;
	}
	public void actionPerformed(ActionEvent ae){
		c1=c.a1.getText();
		c2=c.a2.getText();
		if(isNumber(c1)&&isNumber(c2)){
			Integer i1=new Integer(Integer.parseInt(c1));
			Integer i2=new Integer(Integer.parseInt(c2));
			Button btnTemp=new Button();
			btnTemp=(Button)ae.getSource();
			if(btnTemp.getLabel().equals(c.btnAdd.getLabel()))//四则运算核心代码
				c.ans.setText(new Integer(i1+i2).toString());
			if(btnTemp.getLabel().equals(c.btnSub.getLabel()))
				c.ans.setText(new Integer(i1-i2).toString());
			if(btnTemp.getLabel().equals(c.btnMul.getLabel()))
				c.ans.setText(new Integer(i1*i2).toString());
			if(btnTemp.getLabel().equals(c.btnDiv.getLabel()))//注意除法要用实型
				c.ans.setText(new Double(i1.doubleValue()/i2.doubleValue()).toString());
		}
		else c.ans.setText("输入有误,请注意标题栏");
	}
	static boolean isNumber(String c){
		for(int i=0;i<c.length();i++){
			if(c.charAt(i)<48||c.charAt(i)>57)return false;
		}
		return true;
	}
}
class Control extends FocusAdapter{
	CalcDemo c;
	Control(CalcDemo c){
		this.c=c;
	}
	public void focusGained(FocusEvent fe){
		c.ans.setFocusable(false);
	}
}
class ShutDown extends WindowAdapter{
	public void windowClosing(WindowEvent we){
		System.exit(0);
	}
}
PS:期待产品说明ing…………





  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
flybuck-flyback-design-calc是一种设计工具,用于帮助工程师在电源设计中进行参数计算和优化。这个工具主要用于设计flybuck和flyback拓扑的开关电源。 flybuck和flyback是常用的开关电源拓扑,可以实现高效率和稳定的电源转换。它们适用于各种应用,包括消费电子、工业控制和通信设备等。 使用flybuck-flyback-design-calc,工程师可以根据所需的输出电压、电流和功率,输入电源的电压范围和稳定性要求,计算出合适的电路参数。这些参数包括变压器、电感器和电容器的数值,以及开关管和二极管的额定电流和电压等。此外,工具还可以给出电路的效率和稳定性评估,帮助工程师进行设计优化。 flybuck-flyback-design-calc可以根据输入的参数自动计算电压和电流波形,进行功率平衡分析,以及选择合适的元件。它还可以考虑一些特殊要求,如过电压和过电流保护、起动和关断速度等。 使用flybuck-flyback-design-calc可以大大简化开关电源的设计过程,减少试错和优化时间。工程师只需要输入所需的参数,工具就可以自动生成可行的设计方案。此外,该工具还提供了详细的计算结果和性能分析,帮助工程师了解电路的工作原理和性能特点。 总之,flybuck-flyback-design-calc是一种实用的设计工具,可以帮助工程师在开关电源设计中进行参数计算和优化,实现高效率和稳定的电源转换。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值