java图形化界面实现简单计算器
用java代码写的简易计算器(可以实现基本的加减乘除功能)

⽤java代码写的简易计算器(可以实现基本的加减乘除功能)package A;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.*;public class Calcular3 extends JFrame implements ActionListener,MouseListener{private int m1=0,n=0;//private double m2=0;//运算的数private int flag=0;JFrame f;JPanel p1,p2,p3;JTextField t;JButton b1[]=new JButton[18];String b[]= {"1","2","3","4","5","6","7","8","9","0","清空","退格",".","=","+","-","*","/"};public Calcular3(){f=new JFrame("计算器");t=new JTextField(35);p1=new JPanel();p2=new JPanel();p3=new JPanel();f.setBounds(100, 100, 400, 200);f.add(p1,BorderLayout.NORTH);f.add(p2,BorderLayout.CENTER);f.add(p3,BorderLayout.EAST);p2.setLayout(new GridLayout(5,3));p3.setLayout(new GridLayout(4,1));p1.add(t);for(int i=0;i<14;i++) {b1[i]=new JButton(b[i]);p2.add(b1[i]);b1[i].addActionListener(this);}for(int i=14;i<18;i++) {b1[i]=new JButton(b[i]);p3.add(b1[i]);b1[i].addActionListener(this);}/*for(int i=0;i<18;i++) {b1[i].addActionListener(this);}*/f.setVisible(true);}//实现接⼝的⽅法public void mouseClicked(MouseEvent e) {}public void mousePressed(MouseEvent e) {}public void mouseReleased(MouseEvent e) {}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}public void actionPerformed(ActionEvent e) {String str="";int i;for(i=0;i<=9;i++) {if(e.getSource()==b1[i]) {if(i==9) {n=n*10;}else {n=n*10+i+1;}str=String.valueOf(n);//整形n转换成字符串strt.setText(str);//显⽰到⽂本框上}}for(i=14;i<18;i++) {//+、-、*、/if(e.getSource()==b1[i]) {//匹配运算符m1=Integer.parseInt(t.getText());if(flag==15) {m2=m1+m2;}else if(flag==16) {m2=m1-m2;}else if(flag==17) {m2=m1*m2;}else if(flag==18) {m2=m1/m2;}else m2=m1;//若⽆连续的运算符运算,保存当前数据到m2 if(i==14) flag=15;else if(i==15) flag=16;else if(i==16) flag=17;else flag=18;str=String.valueOf(b[i]);t.setText(str);//显⽰到⽂本框上n=0;//还原,记录下次数据break;//找到匹配数据退出循环}}if(e.getSource()==b1[13]) {//=m1=Integer.parseInt(t.getText());if(flag==15) {m2=m2+m1;}else if(flag==16) {m2=m2-m1;}else if(flag==17) {m2=m2*m1;}else if(flag==18) {m2=m2/m1;}else m2=m1;str=String.valueOf(m2);t.setText(str);//显⽰到⽂本框上n=0;//还原,记录下次数据flag=0;//flag还原0,表明没有未处理的运算符}if(e.getSource()==b1[10]) {//各变量变为0 清空m1=0;m2=0;flag=0;n=0;t.setText("0");//显⽰到⽂本框上}if(e.getSource()==b1[11]) {//退格m1=(int)(Double.parseDouble(t.getText())/10);n=m1;str=String.valueOf(m1);t.setText(str);}if(e.getSource()==b1[12]) {//⼩数点m1=Integer.parseInt(t.getText());str=String.valueOf(m1+b[12]);t.setText(str);//显⽰到⽂本框上int j=0;for(i=0;i<=9;i++) {if(e.getSource()==b1[i]) {j++;m2=Math.pow(0.1, j)*Integer.parseInt(b[i]);str=String.valueOf(m1+m2);t.setText(str);//显⽰到⽂本框上}}}}//主函数public static void main(String[] args) {new Calcular3();}}。
设计一个图形界面的计算器,完成简单的算术运算-JAVA课程设计

设计一个图形界面的计算器,完成简单的算术运算-JAVA课程设计课程设计论文任务书软件学院学院网络工程专业 2006-2 班一、课程设计论文题目设计一个图形界面的计算器,完成简单的算术运算二、课程设计论文工作自09 年 1 月 5 日起至09年 1 月 9 日止。
三、课程设计论文地点: 信息工程学院中心机房四、课程设计论文内容要求:1.本课程设计的目的(1)使学生巩固和提高Java编程技术(2)培养学生掌握程序设计的基本思路和方法;(3)加强学生研发、调试程序的能力;(4)培养学生分析、解决问题的能力;(5)提高学生的科技论文写作能力。
2.课程设计的任务及要求1)任务:1设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算2计算器要有小数点、正负号、求倒数、退格和清零功能2)创新要求:计算器附加有开平方根,平方,立方,判断素数,求log的功能3)课程设计论文编写要求(1)课程设计任务及要求(2)设计思路--工作原理、功能规划(3)详细设计---数据分析、算法思路、类设计、功能实现(含程序流程图、主要代码及注释)、界面等。
(4)运行调试与分析讨论---给出运行屏幕截图,分析运行结果,有何改进想法等。
(5)设计体会与小结---设计遇到的问题及解决办法,通过设计学到了哪些新知识,巩固了哪些知识,有哪些提高。
(6)参考文献(必须按标准格式列出,可参考教材后面的参考文献格式)7 报告按规定排版打印,要求装订平整,否则要求返工;8 课设报告的装订顺序如下:封面---任务书---中文摘要---目录----正文---附录代码及相关图片(9)严禁抄袭,如有发现,按不及格处理。
4)答辩与评分标准:(1)考勤:10分;(2)程序检查:30分;(3)答辩回答问题:20分(3)课程设计报告:40分;5)参考文献:[1] 耿祥义.《Java 2 实用教程(第三版)》北京清华大学出版社 2006.8[2] 朱福喜.《Java语言程序设计》.北京清华大学出版社.2005[3] 朱福喜,尹为民,余振坤.《Java语言与面向对象程序设计》.武汉武汉大学出版社.20026)课程设计进度安排内容天数地点构思及收集资料7 图书馆编码与调试 5 实验室撰写论文 3 图书馆、实验室学生签名:09 年 01月 05日课程设计论文评审意见(1)考勤(10分):优( )、良( )、中( )、一般( )、差( );(2)程序检查(30分):优( )、良( )、中( )、一般( )、差( );(3)答辩回答问题(20分):优( )、良( )、中( )、一般( )、差( );(4)设计报告(40分):优( )、良( )、中( )、一般( )、差( );评阅人: 职称: 讲师年月日目录一、课设任务及要求 1二、需求分析 2三、设计思路 3四、详细设计 5五、运行调试与分析讨论9六、设计体会与小结14七、参考文献15附录16中文摘要Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。
Java实现简易计算器

Java实训作业题目:Java实现简易计算器学院:姓名:学号:班级:20 年月一、实验目的通过课程设计,主要要达到两个目的,一是检验和巩固专业知识、二是提高综合素质和能力。
此次课程设计实训主要是Java语言程序设计的实现。
通过该课程设计,可以将课堂上掌握的理论知识与处理数据的业务相结合,以检验自己掌握知识的宽度、深度及对知识的综合运用能力。
二、实验要求用Java编写一个简单的计算器,使其能够实现最基本的功能,如简单的加、减、乘、除;平方根,倒数,平方等功能。
三、详细内容1.界面设计界面设计使用GUI,其中有用到swing组件的TextField和Button,用到awt中的BorderLayout和GridLayout布局管理方式,其图形界面如图1-1所示:图1-1其中主要代码为:public mainWindow(){this.setTitle("计算器");//用户图形界面标题this.setVisible(true);//用户图形界面可缩小this.setResizable(false);//用户图形界面不可放大this.setSize(350,300);//设置用户图形界面的大小this.setLocation(400,150);//用户图形界面在屏幕中的显示位置JPanel panel1 = new JPanel();//新建一个画板JPanel panel2 = new JPanel();button1 = new JButton("1");...reset = new JButton("CE");Container container = this.getContentPane();container.add(panel2,BorderLayout.NORTH);container.add(panel1);panel1.setLayout(new GridLayout(5,4));//将画板1分为4行5列result.setEnabled(false);result.setFont(new Font("Dialog",Font.BOLD,25));//运算结果的字体大小result.setEditable(false);result.setHorizontalAlignment(SwingConstants.RIGHT);panel1.add(reciprocal);//分别将20个按钮依次添加到画板panel1中,并设置各自的大小reciprocal.setFont(new Font("Dialog",Font.PLAIN,20));...panel1.add(divide);divide.setFont(new Font("Dialog",Font.PLAIN,20));panel2.setLayout(new GridLayout());panel2.add(result);//画板panel2添加运算结果2.四则运算较为简单的实现了简单的加、减、乘、除运算,主要代码如下:ActionListener equal1 = new ActionListener(){ //实现四则运算public void actionPerformed(ActionEvent e){String str = result.getText();b = DatatypeConverter.parseDouble(str);{if(flag == "+")c = a + b;else if(flag == "-")c = a - b;else if(flag == "*")c = a * b;else if(flag == "/" || b != 0)c = a / b;}if(flag != "=")result.setText("" + c);elseresult.setText("零不能做除数!");a = 0;b = 0;c = 0;flag = "";}};3.其他功能另外添加了平方根,倒数,平方等功能,主要代码如下:平方根运算的实现:ActionListener sqrt1= new ActionListener(){public void actionPerformed(ActionEvent e){String str = result.getText();double i = DatatypeConverter.parseDouble(str);i = Math.sqrt(i);result.setText("" + i);}};倒数运算的实现:ActionListener reciprocal1 = new ActionListener(){ public void actionPerformed(ActionEvent e){String str = result.getText();double i = DatatypeConverter.parseDouble(str);i = 1/i;result.setText("" + i);}};平方运算的实现:ActionListener square1 = new ActionListener(){public void actionPerformed(ActionEvent e){String str = result.getText();double i = DatatypeConverter.parseDouble(str);i = i*i;result.setText("" + i);}};4.程序测试经测试发现本计算器基本功能均能实现,可正常运行计算,针对功能实现的代码部分过于简单,可以对其进行改善提高,方便用户使用!5.实训小结通过对计算器窗体的编写,熟悉了java图形用户界面的设计原理和程序结构,熟悉了java中awt和swing的组合。
报告格式

信息科学与技术学院2009—2010上学期《Java面向对象程序设计》课程报告课程设计题目:基于java图形界面的简易计算器学号:20091813姓名:王泽专业:电气工程及其自动化教师:陈帆老师2010-12第1部分设计的内容要求1.1本程序主要练习使用布局管理器设计一个计算器的界面,并练习使用事件监听器处理数据的输入,并完成相关的计算。
1.2通过鼠标依次输入参加计算的数值,设计的计算器应用程序则可以完成加法、减法、乘法、除法和取余运算。
且有小数点、正负号、求倒数、退格和清零功能。
第2部分设计思想本程序功能不是太复杂,主要工作是界面的设计,可以在一个类中实现。
2.1界面的布局问题程序继承来自框架类(Frame),总体布局上选用布局管理器BorderLayout:(1)将单行文本框加入到“North”区域(2)将面板panel加入到“Center”区域,同时panel包含了各种数字按钮和符号按钮。
面板panel采用Girdlayout布局,选用5行*5列,将各种按钮添加到面板panel,并增加按钮监听事件。
2.2关于数据存储问题计算器完成的是一个数学表达式,本次课程设计我选用的是使用链表(Linkedlist类)来存储数字和运算符号。
程序运行后,输入的所有数字及运算符号都全部存储在链表中,待最后运算时,再一一求出来进行计算。
2.3.关于事件监听的处理问题计算器的各种按钮都需要一个对象来进行监视,以便对发生的事件做出处理。
计算器的各种按钮通过调用相应的方法将某个对象作为自己的监视器。
事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完成主要的按钮事件的处理。
事件处理分以下几种情况:数字按钮事件(”0”,”1”,”2”…”8”,”9”)、运算符按钮事件(”+”,”-“,”*”,”/”,”%”)、正负号按钮事件(”+/-“)、小数点按钮事件(”.”)、等号按钮事件(”=”)、求倒按钮事件(”1/x”)、退格按钮事件(”退格”)、清楚按钮事件(“C”)。
java实验报告——简单计算器的编写五篇范文

java实验报告——简单计算器的编写五篇范文第一篇:java实验报告——简单计算器的编写JAVA实验报告——简单计算器的编写班级:学号:姓名:一、实验目的1.掌握java图形用户界面(GUI)的设计原理和程序结构2.能设计复核问题要求的图形用户界面程序3.掌握常用组件的事件接口4.应用awt和swing组件进行应用程序设计二、实验条件1.计算机一台2.java软件开发环境三、实验步骤1、编写代码:mport java.awt.*;import java.awt.event.*;import javax.swing.*;public class JCalculator extends JFrame implements ActionListener {private static final long serialVersionUID =-***457Lprivate class WindowCloser extends WindowAdapter {public void windowClosing(WindowEvent we){System.exit(0);}}int i;private final String[] str = { “7”, “8”, “9”, “/”, “4”, “5”, “6”, “*”, “1”,“2”, “3”, “-”, “.”, “0”, “=”, “+” };JButton[] buttons = new JButton[str.length]; JButton reset = new JButton(“CE”); JTextField display = new JTextField(“0”);public JCalculator(){super(“Calculator”);JPanel panel1 = new JPanel(new GridLayout(4, 4)); for(i = 0;i < str.length;i++){buttons[i] = new JButton(str[i]);panel1.add(buttons[i]);}JPanel panel2 = new JPanel(new BorderLayout()); panel2.add(“Center”, display);panel2.add(“East”, reset);getContentPane().setLayout(new BorderLayout()); getContentPane().add(“North”, panel2); getContentPane().add(“Center”, panel1);for(i = 0;i < str.length;i++)buttons[i].addActionListener(this);reset.addActionListener(this);display.addActionListener(this); addWindowListener(new WindowCloser()); setSize(800, 800);setVisible(true);pack();}public void actionPerformed(ActionEvent e){ Object target = e.getSource();String label = e.getActionCommand();if(target == reset)handleReset();else if(“0123456789.”.indexOf(label)> 0)handleNumber(label);elsehandleOperator(label);}boolean isFirstDigit = true;public void handleNumber(String key){if(isFirstDigit)display.setText(key);else if((key.equals(“.”))&&(display.getText().indexOf(“.”)< 0))display.setText(display.getText()+ “.”);else if(!key.equals(“.”))display.setText(display.getText()+ key);isFirstDigit = false;}public void handleReset(){display.setText(“0”);isFirstDigit = true;operator = “=”;}double number = 0.0;String operator = “=”;public void handleOperator(String key){if(operator.equals(“+”))number += Double.valueOf(display.getText());else if(operator.equals(“-”))number-= Double.valueOf(display.getText());else if(operator.equals(“*”))number *= Double.valueOf(display.getText());else if(operator.equals(“/”))number /= Double.valueOf(display.getText());else if(operator.equals(“=”))number = Double.valueOf(display.getText());display.setText(String.valueOf(number));operator = key;isFirstDigit = true;}public static void main(String[] args){new JCalculator();} }2、运行结果,见截图计算测试:123+456=579结果正确,程序无误。
Java程序设计计算器实验报告

长江大学工程技术学院实验报告
通信 61302 胡炯
} else if (operator.equals("-")) { // 减法运算 resultNum -= getNumberFromText(); } else if (operator.equals("*")) { // 乘法运算 resultNum *= getNumberFromText(); } else if (operator.equals("sqrt")) { // 平方根运算 resultNum = Math.sqrt(resultNum); } else if (operator.equals("%")) { // 百分号运算,除以 100 resultNum = resultNum / 100; } else if (operator.equals("+/-")) { // 正数负数运算 resultNum = resultNum * (-1); } else if (operator.equals("=")) { // 赋值运算 resultNum = getNumberFromText(); } if (operateValidFlag) { // 双精度浮点数的运算 long t1; double t2; t1 = (long) resultNum; t2 = resultNum - t1; if (t2 == 0) { resultText.setText(String.valueOf(t1)); } else { resultText.setText(String.valueOf(resultNum)); } } (2)主要功能过程说明 1 构造函数 2 初始化计算器 3 处理事件 4 处理 Backspace 键被按下的事件 5 处理数字键被按下的事件 6 处理 C 键被按下的事件 7 处理运算符键被按下的事件 8 从结果文本框中获取数字 (3)功能流程图
基于java的简易计算器的设计

基于java的简易计算器的设计摘要自从java语言诞生以来,java语言就以不可抵挡的趋势很快成为国际上广泛流行的面向对象编程语言,它既具有高级语言的特点,又少了C语言中指针特点,因而变得简单了很多。
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,其具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
本文介绍了用java语言编写一个简易计算器。
实现数学上的加、减、乘、除、乘方、开方、阶乘、正弦、余弦运算等相关运算。
利用这个程序可以方便的进行日常性的小规模运算,小巧简易,是个实用的工具。
关键词:程序设计;简易计算器;java语言THE DESIGN OF SIMPLE CALCULATOR BASED ON JA V AABSTRACTSince the inception of the java language, java language Take irresistible trend soon beca me widespread international popular object-oriented programming language, both with advan ced language features, and less of the C language pointer characteristics, and thus becomes a l ot simpler . Java is a cross-platform application software can write object-oriented programmi ng language, which has excellent versatility, efficiency, platform portability, and security, are widely used in personal PC, data center, gaming consoles, scientific super-computers, mobile phones and the Internet, also has the world's largest developer of professional community. In t he global cloud computing and mobile Internet industry environment, Java and more have sig nificant advantages and broad prospects.This article describes the use java language a simple calculator. Achieve mathematical addition, subtraction, multiplication, division, involution, evolution, factorial, sine, cosine op erations and other related operations. With this program you can easily carry out daily operati ons of small-scale, small simple, is a useful tool.Key words:program design;simple calculator;java language目录1前言 (1)1.1 课程设计背景 (1)1.2 需求环境 (1)1.3 课程设计思路 (1)2课程设计概要 (2)3 计算器详细设计 (3)3.1 计算器界面……….………….........………………………………………. .33.1.1 CAL主类的显示分布 (3)3.1.2计算器显示界面实现代码 (3)3.2 监听各个按钮的类 (5)3.2.1 编写监听类目的 (5)3.2.2 监听类实现代码 (5)3.3 按键响应类 (7)3.3.1 响应类编写的目的 (7)3.2.2 响应类实现代码 (7)3.3 运算处理类 (9)3.3.1 处理方式 . (9)3.2.2 处理类实现代码 (9)4 运行与调试 (12)4.1 进入程序主界面 (12)4.2 加减乘除功能实现 (12)4.3 正余弦、正切功能实现 (13)4.4 阶乘功能实现 (13)4.5 乘方、开方功能实现 (14)5 实验总结 (15)参考文献 (16)附录:源代码 (17)1 前言1.1 课程设计背景日常生活中我们经常会遇到一些小型数据计算的问题,本课程设计就是以此为出发点,设计了这样一个简单的计算器,用以实现基本的数学运算。
java编写的简单计算器

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;public class Calculator extends JFrame{private JPanel jp;private JTextField tAdd1,tAdd2,tAdd3,tSub1,tSub2,tSub3,tMul1,tMul2,tMul3,tDiv1,tDiv2,tDiv3;private JLabel tShow,label1,label2,label3,label4,label5,label6,label7,label8;private JButton result,exit;//构造器public Calculator(){super("简易计算器");Init();}//初始化public void Init(){ //显示区tShow=new JLabel(" 感谢使用简易计算器!"); tShow.setBounds(0, 0, 300, 20);//加法区tAdd1=new JTextField(); tAdd2=new JTextField(); tAdd3=new JTextField();label1=new JLabel("+"); label2=new JLabel("=");tAdd1.setBounds(5, 25, 80, 20); label1.setBounds(85, 25, 15, 15);tAdd2.setBounds(100,25,80,20); label2.setBounds(180,25,15,15);tAdd3.setBounds(190,25,130,20);//减法区tSub1=new JTextField(); tSub2=new JTextField(); tSub3=new JTextField();label3=new JLabel("-"); label4=new JLabel("=");tSub1.setBounds(5, 50, 80, 20); label3.setBounds(85, 50, 15, 15);tSub2.setBounds(100,50,80,20); label4.setBounds(180,50,15,15);tSub3.setBounds(190,50,130,20);//乘法区tMul1=new JTextField(); tMul2=new JTextField(); tMul3=new JTextField();label5=new JLabel("*"); label6=new JLabel("=");tMul1.setBounds(5, 75, 80, 20); label5.setBounds(85,75, 15, 15);tMul2.setBounds(100,75,80,20); label6.setBounds(180,75,15,15);tMul3.setBounds(190,75,130,20);//除法区tDiv1=new JTextField(); tDiv2=new JTextField(); tDiv3=new JTextField();label7=new JLabel("/"); label8=new JLabel("=");tDiv1.setBounds(5, 100, 80, 20); label7.setBounds(85,100, 15, 15);tDiv2.setBounds(100,100,80,20); label8.setBounds(180,100,15,15);tDiv3.setBounds(190,100,130,20);result=new JButton("开始计算");result.setBounds(10,140,100,40);exit=new JButton("退出");exit.setBounds(180,140,100,40);jp=(JPanel)this.getContentPane();jp.setLayout(null);jp.add(tShow); jp.add(tAdd1); jp.add(label1); jp.add(tAdd2); jp.add(label2); jp.add(tAdd3);jp.add(tSub1); jp.add(label3); jp.add(tSub2); jp.add(label4); jp.add(tSub3); jp.add(tMul1);jp.add(tMul2); jp.add(label5); jp.add(tMul3); jp.add(label6); jp.add(tDiv1); jp.add(label7);jp.add(tDiv2); jp.add(label8); jp.add(tDiv3); jp.add(result); jp.add(exit);//动作事件exit.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubSystem.exit(0);}});result.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){Double d = null;String a=null,b=null;a=tAdd1.getText(); b=tAdd2.getText();if(!a.isEmpty()&&!b.isEmpty()) //if(a!=null&b!=null&&a!=""&b!="")不行{d=Double.parseDouble(a)+Double.parseDouble(b);tAdd3.setText(d+""); //将d转换为字符串型// tAdd3.setText(String.valueOf(d));}a=tSub1.getText(); b=tSub2.getText();if(!a.isEmpty()&&!b.isEmpty()){d=Double.parseDouble(a)-Double.parseDouble(b);tSub3.setText(d+"");}a=tMul1.getText(); b=tMul2.getText();if(!a.isEmpty()&&!b.isEmpty()){d=Double.parseDouble(a)*Double.parseDouble(b);tMul3.setText(d+"");}a=tDiv1.getText(); b=tDiv2.getText();if(!a.isEmpty()&&!b.isEmpty()){d=Double.parseDouble(a)/Double.parseDouble(b);tDiv3.setText(String.valueOf(d));}}});}//主函数public static void main(String[] args){Calculator cal=new Calculator();cal.setVisible(true);cal.setResizable(false);cal.setSize(330,230);cal.setLocationRelativeTo(null);cal.setDefaultCloseOperation(EXIT_ON_CLOSE);}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学号天津城建大学Java 语言程序设计C实验报告实验5:计算器学生姓名路江飞班级11卓越7班一、实验目的1.掌握Java图形组件与布局管理器的使用;2.掌握使用Java事件处理机制的使用;3.掌握图形界面的各种控件的使用,如:标签、文本框、按钮、复选框、列表框、窗框等。
二、实验要求1.采用布局管理器进行界面的布局;2.学会对不同的事件用相应的事件处理器;3.写出实验报告。
要求记录编译与执行Java程序当中的系统错误信息提材示,并给出解决办法。
三、实验内容1.在随堂练习的简单计算器基础上设计一个多功能计算器。
包括复杂的功能:比如记忆功能,三角函数,成方,对数等等。
五、实验结果文件1:package computer;import java、awt、BorderLayout;public class Compuer extends JFrame {private JPanel contentPane;private JTextField textField;private JTextField textField_1;private JTextField textField_2;private JTextField textField_3;/*** Launch the application、*/public static void main(String[] args) {EventQueue、invokeLater(new Runnable() {public void run() {//运行程序时,点击按钮输入公式,当点击等于号时显示出计算结果try {Compuer frame = new Compuer();frame、setVisible(true);Time time=new Time();time、setTime(frame、textField_3);Thread thread=new Thread(time);thread、start();}catch (Exception e) {e、printStackTrace();}}});}/*** Create the frame、*/public Compuer() {setTitle("\u8BA1\u7B97\u5668");setName("");final StringBuffer s=new StringBuffer();setDefaultCloseOperation(JFrame、EXIT_ON_CLOSE);setBounds(100, 100, 412, 448);contentPane = new JPanel();contentPane、setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);contentPane、setLayout(null);textField = new JTextField();textField、setEnabled(false);textField、setLocale(Locale、UK);textField、setForeground(Color、PINK);textField、setText(" \u6B22\u8FCE\u4F7F\u7528\u8BA1\u7B97\u5668");textField、setBounds(10, 20, 368, 30);contentPane、add(textField);textField、setColumns(10);textField_1 = new JTextField();//文本框textField_1,显示公式textField_1、setBounds(10, 102, 368, 30);contentPane、add(textField_1);textField_1、setColumns(10);textField_2 = new JTextField();//文本框textField_2、显示计算结果textField_2、setBounds(10, 142, 368, 30);contentPane、add(textField_2);textField_2、setColumns(10);textField_3 = new JTextField();//文本框textField_3,显示电子表textField_3、setForeground(new Color(205, 133, 63));textField_3、setBounds(10, 60, 368, 30);contentPane、add(textField_3);textField_3、setColumns(10);//按钮'清零',监听到按钮后清零JButton btnC = new JButton("\u6E05\u96F6");btnC、setForeground(Color、RED);btnC、addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {textField_1、setText("");textField_2、setText("");s、delete(0, s、length());}});btnC、setBounds(10, 182, 183, 44);contentPane、add(btnC);//按钮'退格',监听到按钮后退格JButton button_16 = new JButton("\u9000\u683C");button_16、setForeground(Color、RED);button_16、addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {s、delete(s、length()-1, s、length());String str=s、toString();textField_1、setText(str);}});button_16、setBounds(193, 182, 185, 44);contentPane、add(button_16);//按钮'*',监听到按钮后显示*JButton button_1 = new JButton("*");button_1、addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {s、append('*');textField_1、setText(str);}});button_1、setBounds(285, 271, 93, 44); contentPane、add(button_1);//按钮'6',监听到按钮后显示6JButton button_2 = new JButton("6");button_2、addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { s、append('6');String str=s、toString();textField_1、setText(str);}});button_2、setBounds(193, 271, 93, 44); contentPane、add(button_2);//按钮'5',监听到按钮后显示5JButton button_3 = new JButton("5");button_3、addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { s、append('5');String str=s、toString();textField_1、setText(str);}});button_3、setBounds(100, 271, 93, 44); contentPane、add(button_3);//按钮'4',监听到按钮后显示4JButton button_4 = new JButton("4");button_4、addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { s、append('4');String str=s、toString();textField_1、setText(str);}});button_4、setBounds(10, 271, 93, 44);contentPane、add(button_4);//按钮'-',监听到按钮后显示-JButton button_5 = new JButton("-");button_5、addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { s、append('-');textField_1、setText(str);}});button_5、setBounds(285, 313, 93, 44); contentPane、add(button_5);//按钮'3',监听到按钮后显示3JButton button_6 = new JButton("3");button_6、addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { s、append('3');String str=s、toString();textField_1、setText(str);}});button_6、setBounds(193, 313, 93, 44); contentPane、add(button_6);//按钮'2',监听到按钮后显示2JButton button_7 = new JButton("2");button_7、addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { s、append('2');String str=s、toString();textField_1、setText(str);}});button_7、setBounds(100, 313, 93, 44); contentPane、add(button_7);//按钮'1',监听到按钮后显示1JButton button_8 = new JButton("1");button_8、addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { s、append('1');String str=s、toString();textField_1、setText(str);}});button_8、setBounds(10, 313, 93, 44);contentPane、add(button_8);//按钮'+',监听到按钮后显示+JButton button_9 = new JButton("+");button_9、addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { s、append('+');textField_1、setText(str);}});button_9、setBounds(285, 355, 93, 44);contentPane、add(button_9);//按钮'=',点击按钮'=',将计算出结果**********************************JButton button_10 = new JButton("=");button_10、setForeground(Color、RED);button_10、addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {String str=s、toString();String ss=str;String index="[-]|[+]|[/]|[*]";String number[]=str、split(index);int count=number、length;double num[]=new double[count];for(int i=0;i<count;i++){num[i]=Double、parseDouble(number[i]);}double result=0;if(ss、contains("+")){result=num[0];for(int i=1;i<count;i++){result+=num[i];}}if(ss、contains("-")){result=num[0];for(int i=1;i<count;i++){result-=num[i];}}if(ss、contains("*")){result=num[0];for(int i=1;i<count;i++){result*=num[i];}}if(ss、contains("/")){result=num[0];for(int i=1;i<count;i++){if(num[i]==0){//除数等于0时,显示错误信息textField_2、setText("出错");return;}else {result/=num[i];}}}//int i=(int)Math、round(result*100);//result=(double)i/100;textField_2、setText(""+result);}});button_10、setBounds(193, 355, 93, 44); contentPane、add(button_10);//按钮'、',监听到按钮后显示。