Java之GUI布局之计算器案列
- 格式:doc
- 大小:49.00 KB
- 文档页数:5
摘要基于MATLAB GUI的计算器设计是利用GUIDE创建图形用户界面进行计算器设计。
设计计算器时,主要是考虑到计算器的易用性、功能的常用程度进行计算器界面与功能的设计。
通过调整控件和文本的布局及颜色,使界面简单大方、布局合理,达到界面友好的效果。
计算器设计时主要利用到get和set两个函数进行各个控件属性值的传递和设置。
计算器实现的功能有:数字0~9和小数点的输入显示,平方、开平方和对数的输入显示。
进行四则运算、正弦计算、余弦计算、正切计算和余切计算,可以求阶乘、求百分数和求倒数。
可以进行括号及变量x与变量y的输入,结合坐标轴编辑框和曲线颜色编辑框实现函数的曲线绘制。
最后运行调试,实现基于MATLAB GUI的计算器的设计。
MATLAB GUI介绍MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。
MATLAB是matrix和laboratory两个词的组合,意为矩阵工厂,主要面对科学计算、可视化以及交互式程设计的高科技计算环境。
MATLAB是将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言的编辑模式,特别是所附带的30多种面向不同领域的工具箱支持,使得它在许多科学领域中成为计算机辅助设计和分析、算法研究和应用开发的基本工具和首选平台。
MATLAB的图形用户界面(Graphical User Interface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。
与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。
MATLAB的图形用户界(GUI)是由光标,窗口,菜单、文字说明等对象构成一个用户界面。
设计一个图形界面的计算器,完成简单的算术运算-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实现简易计算器学院:姓名:学号:班级: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的组合。
课程设计论文设计题目:java计算器学生姓名:指导教师:专业名称:所在院系:摘要在当今这个网络的时代,java语言在网络编程方面的优势使得网络编程有了更好的选择。
Java语言最大的特点是具有跨平台性,使其不受平台不同的影响,得到了广泛的应用。
该程序是一个图形界面的java 计算器,其界面主要采用了swing包,程序实现了:(1)实现简单加、减、乘、除的运算。
(2)实现除了加、减、乘、除按钮外其他按钮功能。
(3)给软件添加一个编辑、查看、帮助的主菜单。
(4)在数据输入方面,提高程序代码的健壮性,增强其对非法输入数据的识别能力。
(5)科学型计算器与标准计算器之间的菜单切换。
Java的早期版本以来,抽象窗口工具包为用户界面组件提供了平台独立的API。
在AWT中,每个组件都由一个原生的等同组件生成和控制,这个原生组件是由当前的图形窗口系统决定的。
与此相对,Swing 组件经常被描述为轻量级的,因为它们不需要操作系统本身所带窗口工具包的原生资源来生成。
目录第1章概要设计 (1)1.1查找资料 (1)1.2选题 (1)1.3标准型计算器界面设计 (1)1.4本章小节 (3)第2章程序整体设计说明 (4)2.1程序中所用到的变量 (4)2.2程序部分源代码及注释 (4)2.3本章小节 (15)第3章程序运行效果 (16)3.1程序运行主界面 (16)3.2程序中各按钮运行界面 (16)3.3本章小节 (20)第4章设计中遇到的重点及难点 (21)4.1设计中遇到的重点 (21)4.2设计中的遇到的难点 (21)4.3本章小节 (23)第5章本次设计中存在不足与改良方案 (24)5.1本次设计中存在的不足 (24)5.2本次设计的改良方案 (24)5.3本章小节 (24)结论 (25)参考文献 (26)致谢 (27)指导教师评语 (28)答辩委员会评语 (29)第1章概要设计1.1查找资料21世纪,随着社会经济的迅速发展和科学技术的全面进步,人类社会已进入信息和网络时代。
计算器不单单是练习如何布局,更重要的是如何实现复杂的运算逻辑。
新手编写计算器,无疑会用到大量的 if-else。
而熟练的开发人员知道如何避开这点。
下面是代码。
[java] view plaincopyprint?import javax.swing.*;import javax.swing.border.Border;import java.awt.*;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import java.math.BigDecimal;import java.math.RoundingMode;import java.util.HashMap;/*** 我的计算器。
MyCalculator 继承于 JFrame,是计算器的界面*/public class MyCalculator extends JFrame {private Border border = BorderFactory.createEmptyBorder(5, 5, 5, 5);private JTextField textbox = new JTextField("0");private CalculatorCore core = new CalculatorCore();private ActionListener listener = new ActionListener() {public void actionPerformed(ActionEvent e) {JButton b = (JButton) e.getSource();String label = b.getText();String result = core.process(label);textbox.setText(result);}};public MyCalculator(String title) throws HeadlessException {super(title); // 调用父类构造方法setupFrame(); // 调整窗体属性setupControls(); // 创建控件}private void setupControls() {setupDisplayPanel(); // 创建文本面板setupButtonsPanel(); // 创建按钮面板}// 创建按钮面板并添加按钮private void setupButtonsPanel() {JPanel panel = new JPanel();panel.setBorder(border);panel.setLayout(new GridLayout(4, 5, 3, 3));createButtons(panel, new String[]{"7", "8", "9", "+", "C","4", "5", "6", "-", "CE","1", "2", "3", "*", "", // 空字符串表示这个位置没有按钮 "0", ".", "=", "/", ""});this.add(panel, BorderLayout.CENTER);}/*** 在指定的面板上创建按钮** @param panel 要创建按钮的面板* @param labels 按钮文字*/private void createButtons(JPanel panel, String[] labels) {for (String label : labels) {// 如果 label 为空,则表示创建一个空面板。
目录一、课程设计目的 (2)二、课程设计任务 (2)2.1、设计任务 (2)2.2、课程设计要求: (2)2.3、需求分析 (2)三、开发工具与平台 (3)3.1、开发工具 (3)3.2、开发平台 (3)四、设计思路 (4)4.1、界面设计 (4)4.2.1、逻辑设计 (4)4.2.2、程序流程图 (5)4.2.3、主要代码展示及说明 (5)4.3、程序测试 (10)五、实验小结 (11)六、附录(程序代码) (12)一、课程设计目的1、熟练掌握java面向对象编程。
2、选择合适的数据结构实现需求。
3、熟练使用各种控制结构。
4、GUI组件、事件处理技术。
二、课程设计任务2.1、设计任务设计一个简易的计算器,可以进行四则运算:加、减、乘、除等(限于十进制下)程序要求:(1)应具有相应的界面,可参考Windows操作系统自带的计算器界面。
(2)操作符号定为:“+”,“-”,“*”,“/”,“+/-”等。
(按国际惯例设计)(3)用户通过点击程序界面上按钮,实现数字、运算符的输入操作。
(4)以上部分为必须完成的内容。
选作部分:(1)具有操作符号“1/x”,“sqrt”(开方),“.”(小数功能)等。
2.2、课程设计要求:(1)应用自己所学课程知识完成对计算器的基本任务。
(2)查阅相关资料,学习和掌握项目中涉及的新知识,提高自学能力。
(3)通过应用java程序编写计算器来提升自己对简单的图形界面有一定的掌握和了解。
2.3、需求分析1.设计的计算器可以完成加法、减法、乘法、除法的简单运算。
2.实现一些简单的扩展运算,如:正负号、倒数、退格、清零等功能。
3.添加小数点功能,用以实现浮点型数据的计算。
4.使用布局管理器设计一个计算器的界面,使用事件监听器处理数据的输入,并完成相关的计算。
三、开发工具与平台3.1、开发工具Microsoft Windows 7旗舰版3.2、开发平台JDK1.6.0-02 和UE编译器四、设计思路4.1、界面设计:(如图3-1)图3-14.2.1、逻辑设计:(1)根据所设计出来的界面,首先要设计其GUI界面,总体界面有一个文本框,20个按钮,总体界面用BorderLayout布局,文本框放置在最NORTH,然后0到9以及+,-,*,/等按钮放置到一个面板Panel中,完成界面设计。
JavaGUI布局管理器容器可设置布局管理器,管理容器中组件的布局:container.setLayout(new XxxLayout());Java有6种布局管理器,AWT提供了5种:FlowLayoutBorderLayoutGridLayoutGridBagLayoutCradLayoutSwing还提供了⼀种:BoxLayout1、FlowLayout 流式布局顾名思义,组件像⽔流⼀样,从第⼀⾏开始,从左向右依次排列,碰到边界时转到下⼀⾏继续。
三个构造函数:FlowLayout() //使⽤默认参数FlowLayout(int align) //设置对齐⽅式FlowLayout(int align,int hgap,int vgap) //设置对齐⽅式、⽔平间距、垂直间距align是FlowLayout类的常量,⽐如:FlowLayout.LEFT,FlowLayout.CENTER2、BorderLayout 边界布局将容器划分为EAST、WEST、SOUTH、NORTH、CENTER五个部分,每个部分可放置⼀个组件。
2个构造函数:BorderLayout() //使⽤默认参数BorderLayout(int hgap,int vgap) //设置⽔平间距、垂直间距放置组件时需指定位置:container.add(Component comp, Borderlayout.SOUTH); //第⼆个参数是BorderLayout类的常量,指定组件位置container.add(Component comp); //缺省位置时,默认为BorderLayout.CENTER,放在中间⼀共5个位置,⼀个位置最多放1个组件。
当然,可以在⼀个位置放置多个组件,只是后放置的组件会覆盖之前放置的组件。
也可以⼀个都不放。
3、GridLayout ⽹格布局将容器划分为指定⾏数、列数的⽹格,每个格⼦的尺⼨都相同,⼀个格⼦中放置⼀个组件,适合组件⼤⼩差不多的,⽐如放置计算器的按钮。
基于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 课程设计背景日常生活中我们经常会遇到一些小型数据计算的问题,本课程设计就是以此为出发点,设计了这样一个简单的计算器,用以实现基本的数学运算。
实验四GUI图形界面设计一实验要求1、掌握Awt与Swing的区别与联系;掌握Swing常用图像组件的使用;掌握主要的布局管理器的使用方法;2、了解事件处理机制;掌握Swing常用图像组件的使用;掌握固定菜单和弹出式菜单的创建和使用;二实验内容1、设计并实现一个类似于windows操作系统附件中自带的计算器的一款简单的计算器,要求界面美观,设计合理;带有常用的菜单并实现其功能;能完成加、减、乘、除等简单的计算,在下面写出其核心代码。
(1)源代码package com.cal;import java。
awt。
*;import javax。
swing。
*;import java。
awt。
event。
*;import java。
util。
Stack;import java.awt。
GridLayout;class Cal extends JFrame implements ActionListener {JTextField show=null;JPanel jp1,jp2;JButton c,jia,jian,cheng,chu,equ,point;//按钮清空加,减,乘 ,除,等号,小数点JButton b[] = new JButton[10];//按钮数组 0-9//栈控制标记位int flag=1;//结果标记位int reflag=0;public Cal(){//创建组件jp1=new JPanel();jp2=new JPanel();show=new JTextField(45);show.setFont(new Font(”宋体",Font。
PLAIN,16));jia=new JButton(” + ");jian=new JButton(” —”);cheng=new JButton(” * ”);chu=new JButton(” / ");equ=new JButton(” = ”);equ。
java编写的计算器设计报告实验7:综合实验二一、试验目的进一步掌握图形用户界面GUI,了解Swing组件的使用,以及系统提供的该工具的作用,进一步掌握JAVA事件响应机制的原理,更好的掌握面向对象编程的思路。
二、实验要求创建一个界面来实现一个简单的计算器,要求:1、实现最基本的计算器界面,包括:0~9的10个数字按钮,加、减、乘、除、等于5个运算符按钮,一个结果存放的文本区域。
2、实现最基本的加、减、乘、除运算,并能得到正确结果。
3、实现连续的运算,小数点的使用,并考虑各种可能导致异常的情况,将程序作完善;4、可以通过关闭按钮实现关闭窗口。
三、实验步骤、结果1、程序代码:import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent; importjava.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.SwingConstants;public class ZhxCacu extends JFrame implements ActionListener { JPanel jpResult = new JPanel();JPanel jpButton = new JPanel();JTextField jtfResult = new JTextField("0");JButton zero = new JButton("0"); //数字键0JButton one = new JButton("1"); //数字键1JButton two = new JButton("2"); //数字键2JButton three = new JButton("3"); //数字键3JButton four = new JButton("4"); //数字键4JButton five = new JButton("5"); //数字键5JButton six = new JButton("6"); //数字键6JButton seven = new JButton("7"); //数字键7JButton eight = new JButton("8"); //数字键8JButton nine = new JButton("9"); // 数字键9JButton plus = new JButton("+");JButton sub = new JButton("-");JButton mul = new JButton("*");JButton div = new JButton("/");JButton equal = new JButton("=");JButton ce = new JButton("ce"); // 置零键JButton point = new JButton(".");JButton tzero = new JButton("00");//com代表敲击运算符,digit代表敲击数字键boolean com = false;boolean digit = false;float total=0;String sum="";int symbol=0;int b,c=0;public ZhxCacu(){// 添加结果输入框并设置对齐方式jpResult.setLayout(new BorderLayout());jpResult.add(jtfResult);jtfResult.setEditable(false);jtfResult.setHorizontalAlignment(SwingConstants.RIGHT); //将组件添加到窗体上this.add(jpResult,"North");this.add(jpButton,"Center");// 定义按钮区域布局管理器为网格布局jpButton.setLayout(new GridLayout(6, 3, 10, 10));// 添加各个按钮键jpButton.add(seven);jpButton.add(eight);jpButton.add(nine);jpButton.add(four);jpButton.add(five);jpButton.add(six);jpButton.add(one);jpButton.add(two);jpButton.add(three);jpButton.add(zero);jpButton.add(tzero);jpButton.add(plus);jpButton.add(sub);jpButton.add(mul);jpButton.add(div);jpButton.add(point);jpButton.add(equal);jpButton.add(ce);one.addActionListener(this);//对1按钮添加监听事件two.addActionListener(this);//对2按钮添加监听事件three.addActionListener(this);//对3按钮添加监听事件four.addActionListener(this);//对4按钮添加监听事件five.addActionListener(this);//对5按钮添加监听事件six.addActionListener(this);//对6按钮添加监听事件seven.addActionListener(this);//对7按钮添加监听事件eight.addActionListener(this);//对8按钮添加监听事件nine.addActionListener(this);//对9按钮添加监听事件zero.addActionListener(this);//对0按钮添加监听事件ce.addActionListener(this);//对置零按钮添加监听事件plus.addActionListener(this);//对+按钮添加监听事件equal.addActionListener(this);//对=按钮添加监听事件sub.addActionListener(this);//对-按钮添加监听事件mul.addActionListener(this);//对*按钮添加监听事件div.addActionListener(this);//对/按钮添加监听事件tzero.addActionListener(this);//对00按钮添加监听事件point.addActionListener(this);//对.按钮添加监听事件pack();//初始化窗体大小最合适大小this.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});this.setSize(300,300);this.setVisible(true);}public static void main(String[] args) {// TODO 自动生成方法存根new ZhxCacu();}public void actionPerformed(ActionEvent e) {// TODO 自动生成方法存根//数字if(e.getSource()==one){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("1");com = false;digit = true;}else{sum = jtfResult.getText()+"1"; jtfResult.setText(sum);}}else if(e.getSource()==two){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("2");com = false;digit = true;}else{sum = jtfResult.getText()+"2"; jtfResult.setText(sum);}}else if(e.getSource()==two){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("2");com = false;digit = true;}else{sum = jtfResult.getText()+"2"; jtfResult.setText(sum);}}else if(e.getSource()==two){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("2");com = false;digit = true;}else{sum = jtfResult.getText()+"2"; jtfResult.setText(sum);}}else if(e.getSource()==two){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("2");com = false;digit = true;}else{sum = jtfResult.getText()+"2"; jtfResult.setText(sum);}}else if(e.getSource()==three){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("3");com = false;digit = true;}else{sum = jtfResult.getText()+"3"; jtfResult.setText(sum);}}else if(e.getSource()==four){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("4");com = false;digit = true;}else{sum = jtfResult.getText()+"4"; jtfResult.setText(sum);}}else if(e.getSource()==five){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("5");com = false;digit = true;}else{sum = jtfResult.getText()+"5"; jtfResult.setText(sum);}}else if(e.getSource()==six){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("6");com = false;digit = true;}else{sum = jtfResult.getText()+"6"; jtfResult.setText(sum);}}else if(e.getSource()==seven){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("7");com = false;digit = true;}else{sum = jtfResult.getText()+"7";jtfResult.setText(sum);}}else if(e.getSource()==eight){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("8");com = false;digit = true;}else{sum = jtfResult.getText()+"8"; jtfResult.setText(sum);}}else if(e.getSource()==nine){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("9");com = false;digit = true;}else{sum = jtfResult.getText()+"9"; jtfResult.setText(sum);}}else if(e.getSource()==zero){if(com||digit==false){//第一次敲击数字按jtfResult.setText("0");com = false;digit = true;}else{sum = jtfResult.getText()+"0"; jtfResult.setText(sum);if(Float.parseFloat(sum)!=0){}else{if(b==1){sum = jtfResult.getText()+"0"; jtfResult.setText(sum);}elsejtfResult.setText("0");}}}else if(e.getSource()==tzero){if(com||digit==false){//第一次敲击数字按jtfResult.setText("00");com = false;digit = true;}else{sum = jtfResult.getText()+"00";jtfResult.setText(sum);}}else if(e.getSource()==point){if(com||digit==false){//第一次敲击数字按钮b=1;com = true;digit = false;}else if(c==1); else{b=1;sum = jtfResult.getText()+".";jtfResult.setText(sum);c=1;}}//运算else if(e.getSource()==plus){symbol = 1;c=0;total = Float.parseFloat(jtfResult.getText()); com = true;digit = false;}else if(e.getSource()==sub){symbol = 2;c=0;total = Float.parseFloat(jtfResult.getText()); com = true;digit = false;}else if(e.getSource()==mul){symbol = 3;c=0;total = Float.parseFloat(jtfResult.getText()); com = true;digit = false;}else if(e.getSource()==div){symbol = 4;c=0;total = Float.parseFloat(jtfResult.getText()); com = true;digit = false;}else if(e.getSource()==ce){com = true;digit = false;total=0;sum ="0" ;jtfResult.setText(sum);}//=else if(e.getSource()==equal){com = true;digit = false;switch(symbol){case 1:jtfResult.setText(newFloat(total+Float.parseFloat(jtfResult.getText())).toString());b=0;c=0;b reak;case 2:jtfResult.setText(newFloat(total-Float.parseFloat(jtfResult.getText())).toString());b=0;c=0;break;case 3:jtfResult.setText(newFloat(total*Float.parseFloat(jtfResult.getText())).toString());b=0;c =0;break;case 4:if( Float.parseFloat(jtfResult.getText())==0 ){try{throw new Exception();}catch(Exception a){jtfResult.setText("错误~被除数不能为0,请重新输入:");}}elsejtfResult.setText(newFloat(total/Float.parseFloat(jtfResult.getText())).toString());b=0;c =0;break;}digit=false;total = 0;}}}2、界面:四、实验中的问题以及解决方案:1、问题: 被除数为0解决:抛出异常2、问题: 阻止0、小数点在同一数字中重复出现解决: 设置标志,五、总结:1、进一步了解了项目开发的步骤,思路,以及程序的布局和框架结构,尤其是对JAVA的模块化设计有了更为深入的了解。
Java实现简易计算器,可以计算算术表达式:Java源码如下://GridFrame.java文件import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;//计算机框架布局public class GridFrame extends JFrame{//定义面板,并设置为网格布局,4行4列,组件水平、垂直间距均为3JPanel p=new JPanel(new GridLayout(5,4,3,3));JTextArea out=new JTextArea();//定义文本框String temp="";//定义字符串数组,为按钮的显示文本赋值//注意字符元素的顺序与循环添加按钮保持一致Stringstr[]={"C","(",")","BS","7","8","9","/","4","5","6"," *","1","2","3","-","0",".","=","+"};JButton btn[]=new JButton[str.length]; //声明按钮数组public GridFrame(String s){super(s);//为窗体名称赋值setLayout(new BorderLayout());//定义窗体布局为边界布局//循环定义按钮,并添加到面板中for(int i=0;i<str.length;i++){btn[i]=new JButton(str[i]);btn[i].addActionListener(al);p.add(btn[i]);}//将文本框放置在窗体NORTH位置getContentPane().add(out,BorderLayout.NORTH);out.setRows(2);//将面板放置在窗体CENTER位置getContentPane().add(p,BorderLayout.CENTER);setVisible(true);setSize(350,250);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setLocationRelativeTo(null);//让窗体居中显示}//实现监听器ActionListener al=new ActionListener(){public void actionPerformed(ActionEvent e){Object currKey=e.getSource();if(currKey==btn[12]){out.setText(out.getText()+"1");}else if(currKey==btn[13]){out.setText(out.getText()+"2");}else if(currKey==btn[14]){out.setText(out.getText()+"3");}else if(currKey==btn[8]){}else if(currKey==btn[9]){ out.setText(out.getText()+"5"); }else if(currKey==btn[10]){ out.setText(out.getText()+"6"); }else if(currKey==btn[4]){ out.setText(out.getText()+"7"); }else if(currKey==btn[5]){ out.setText(out.getText()+"8"); }else if(currKey==btn[6]){ out.setText(out.getText()+"9"); }else if(currKey==btn[16]){ out.setText(out.getText()+"0"); }else if(currKey==btn[17]){ out.setText(out.getText()+"."); }else if(currKey==btn[1]){ out.setText(out.getText()+"("); }else if(currKey==btn[2]){ out.setText(out.getText()+")"); }else if(currKey==btn[7]){ out.setText(out.getText()+"/"); }else if(currKey==btn[11]){}else if(currKey==btn[15]){out.setText(out.getText()+"-");}else if(currKey==btn[19]){out.setText(out.getText()+"+");}else if(currKey==btn[18]){out.setText(out.getText()+"\n=");temp=out.getText();temp=temp.substring(0,out.getText().length()-2);;Calculator cal=new Calculator(temp);out.setText(out.getText()+String.valueOf(cal.getRes ult()));}//清除键if(currKey==btn[0]){out.setText("");}//退格键if(currKey==btn[3]){String str=out.getText();if(str.length()!=0){String str1=str.substring(0, str.length()-1);out.setText(str1);}}}};public static void main(String[]args){GridFrame gl=new GridFrame("简易计算机!");}}//ArithHelper.java文件public class ArithHelper{//默认除法运算精度private static final int DEF_DIV_SCALE=16;//这个类不能实例化private ArithHelper(){}/***提供精确的加法运算。
javagui课程设计一、课程目标知识目标:1. 学生能理解Java GUI编程的基本概念,掌握Swing组件的使用方法。
2. 学生能运用布局管理器设计窗口界面,掌握事件处理机制。
3. 学生了解Java GUI编程中的常用设计模式,例如MVC。
技能目标:1. 学生能独立创建简单的图形用户界面,如计算器、文本编辑器等。
2. 学生具备分析问题、设计GUI界面并解决问题的能力。
3. 学生能运用所学知识,对已有GUI程序进行优化和改进。
情感态度价值观目标:1. 学生培养对编程的兴趣和热情,增强学习Java语言的自信心。
2. 学生树立良好的编程习惯,注重代码规范和界面美观。
3. 学生学会团队协作,共同解决问题,培养沟通能力和合作精神。
课程性质分析:本课程为Java语言高级课程,旨在帮助学生掌握图形用户界面编程技术,提高编程实践能力。
学生特点分析:学生具备一定的Java基础,对编程有初步了解,但对GUI编程可能较为陌生。
教学要求:1. 理论与实践相结合,注重培养学生的动手能力。
2. 以案例驱动教学,引导学生主动探索和解决问题。
3. 注重培养学生的编程思维和创新能力。
二、教学内容1. Swing组件概述- JFrame、JPanel等基本容器组件的使用- JLabel、JButton、JTextField等基本组件的创建与使用2. 布局管理器- 流式布局(FlowLayout)- 东南西北中布局(BorderLayout)- 网格布局(GridLayout)- 盒式布局(BoxLayout)3. 事件处理- 事件监听器接口- 事件适配器- 动作事件、鼠标事件、键盘事件等处理机制4. 常用组件与布局组合- 计算器界面设计- 文本编辑器界面设计- 菜单、工具栏等高级组件的使用5. MVC设计模式- 模型(Model)- 视图(View)- 控制器(Controller)- MVC模式在GUI编程中的应用实例6. GUI程序调试与优化- 代码规范与优化- 界面美观与用户体验- 异常处理与调试技巧教学进度安排:1. 第1周:Swing组件概述、基本组件的使用2. 第2周:布局管理器、事件处理3. 第3周:常用组件与布局组合、计算器界面设计4. 第4周:文本编辑器界面设计、菜单、工具栏等高级组件的使用5. 第5周:MVC设计模式、GUI程序调试与优化教学内容关联教材章节:1. Swing组件与布局管理器:第X章2. 事件处理:第X章3. 常用组件与布局组合:第X章4. MVC设计模式:第X章5. GUI程序调试与优化:第X章三、教学方法1. 讲授法:- 对于Swing组件、布局管理器等基本概念和原理,采用讲授法进行教学,结合PPT展示,使学生对知识点有清晰的认识。
java 计算器实验报告Java计算器实验报告引言:计算器是我们日常生活中常用的工具,使用计算器可以快速进行数学运算。
在计算器中,我们可以通过输入数字和运算符来执行各种算术操作。
为了更好地理解计算器的工作原理,我们进行了Java计算器的实验。
一、实验目的本次实验的目的是设计和实现一个简单的Java计算器。
通过这个实验,我们可以加深对Java编程语言的理解,并且掌握Java图形用户界面(GUI)的基本知识。
二、实验环境本次实验使用的是Java开发工具包(JDK)和Eclipse集成开发环境(IDE)。
在实验之前,我们需要确保已经正确安装了JDK和Eclipse。
三、实验步骤1. 创建一个新的Java项目,并命名为"Calculator"。
2. 在项目中创建一个新的Java类,命名为"CalculatorGUI"。
3. 在"CalculatorGUI"类中,创建一个窗口,并设置窗口的标题和大小。
4. 在窗口中添加一个文本框,用于显示计算结果。
5. 在窗口中添加一些按钮,用于输入数字和运算符。
6. 为每个按钮添加事件监听器,以便在用户点击按钮时执行相应的操作。
7. 实现计算器的基本功能,包括加法、减法、乘法和除法。
8. 运行程序,测试计算器的功能。
四、实验结果经过实验,我们成功地实现了一个简单的Java计算器。
用户可以通过按钮输入数字和运算符,并且计算器可以正确地执行相应的运算。
计算结果会显示在文本框中。
五、实验总结通过这个实验,我们学习了如何使用Java编程语言创建图形用户界面,并且掌握了Java计算器的基本实现方法。
在实验过程中,我们遇到了一些问题,比如如何处理用户输入错误的情况,如何处理除数为零的情况等。
通过不断调试和改进,我们最终解决了这些问题,并实现了一个功能完善的计算器。
在今后的学习和工作中,我们可以进一步扩展这个计算器的功能,比如添加科学计算功能、实现复杂运算等。
《网络编程技术》结课论文2012 — 2013学年第二学期题目:简单计算器程序专业班级:网信10-2学号:************姓名:-----------指导老师:---------日期:2013-06-25目录1引言 (3)2基础理论 (3)2.1 AWT 组件 (3)2.2 Swing 组件 (3)2.3 java事件处理机制 (4)3 功能设计 (5)3.1计算器系统概述 (5)3.2功能模块设计 (6)3.3详细设计 (6)4 系统实现 (7)4.1需求分析 (7)4.2设计思路 (8)4.3主要代码展示及说明 (8)4.4调试与分析 (12)5 总结 (12)参考文献 (13)1引言近年来随着计算机和网络在社会领域的发展,java的应用正在不断地走向深入, Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。
Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。
Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。
特别是Java企业应用编程接口为企业计算及电子商务应用系统提供了有关技术和丰富的类库。
本次设计是通过java编程技术来设计一个图形界面(GUI)的计算器应用程序,完成简单的算术运算,该计算器可以实现加法、减法、乘法、除法的简单运算,也可以实现一些简单的扩展运算,这次课程设计的主要目的在于检测对java 应用的熟练程度,发现问题并及时改正和提高,同时扩展对java知识的进一步了解和认识,强化自己的编程能力,为将来在新的旅途中能更好的发挥自身的才能!2基础理论2.1 AWT 组件布局管理器管理组件如何放置在容器中,AWT 中最常用的四种布局类:FlowLayout、BorderLayout、GridLayout、CardLayout。
本项目主要采用了GridLayout 布局。
java简易计算机代码Java是一种面向对象的编程语言,广泛应用于计算机编程领域。
下面我们来看一段简易的Java代码,实现一个计算器的功能。
我们需要定义一个Calculator类,代码如下:```javapublic class Calculator {// 定义两个整型变量,用于存储输入的数字private int num1;private int num2;// 构造方法,用于初始化Calculator对象public Calculator(int num1, int num2) {this.num1 = num1;this.num2 = num2;}// 加法运算方法public int add() {return num1 + num2;}// 减法运算方法public int subtract() {return num1 - num2;}// 乘法运算方法public int multiply() {return num1 * num2;}// 除法运算方法public double divide() {// 判断除数是否为0,避免除以0的错误if (num2 != 0) {return (double)num1 / num2;} else {System.out.println("除数不能为0!");return 0;}}// 主方法,程序入口public static void main(String[] args) {// 创建一个Calculator对象,传入两个待计算的数值Calculator calculator = new Calculator(10, 5);// 调用加法运算方法,并输出结果int sum = calculator.add();System.out.println("两数之和:" + sum);// 调用减法运算方法,并输出结果int difference = calculator.subtract();System.out.println("两数之差:" + difference);// 调用乘法运算方法,并输出结果int product = calculator.multiply();System.out.println("两数之积:" + product);// 调用除法运算方法,并输出结果double quotient = calculator.divide();if (quotient != 0) {System.out.println("两数之商:" + quotient);}}}```在上面的代码中,我们首先定义了一个Calculator类,包含了两个私有的整型变量num1和num2,用于存储输入的数字。
Java程序课程设计任务书实用性计算器的设计与开发1、主要内容:开发一个实用型的计算器程序,实现基本的计算功能同时并进行相应的功能拓展,使其具更加人性化的功能。
我们可以用其进行相应的计算功能来方便我们的学习,代替我们进行一些简单的脑力劳动。
2、具体要求(包括技术要求等):系统的功能要求:1.可以使用计算器进行简单的四则运算:用界面上的按钮输入数字和相应的运算符,即可算出相应的式子的答案,并且确保答案符合一定的精度要求;2.可以使用计算器进行一定的科学运算,比如在输入数字后,计算器可以将相应的数字进行进制转化,实现功能的同时确保一定的精度要求;3.可以进行简单的函数运算,比如求一个数的三角函数等;4.具有一定的错误提示功能,比如输入一个数除以0,我们将输出错误的信息。
学习并掌握以下技术:Javax.swing,AWT,事件处理等熟练使用以下开发工具:Eclipse实现系统上述的功能。
3、进度安排:12月28日~ 12月29日:课程设计选题,查找参考资料12月30日~ 12月31日:完成需求分析1月1日~ 1月5日:完成系统设计,完成程序代码的编写1月6日~ 1月6日:系统测试与完善1月7日~ 1月8日:完成课程设计报告,准备答辩四、主要参考文献[1] 耿祥义. JA V A课程设计[M]. 北京:清华大学出版社,2008年11月.[2] 张广彬, 孟红蕊, 张永宝. Java课程设计案例精编[M]. 北京:清华大学出版社,2007年.[3] 杨树林,胡洁萍. JA V A语言最新实用案例教程[M]. 北京:清华大学出版社,2006年1月. 45-170[4] 刘新Java开发技术大全北京[M].清华大学出版社2009年11月.[5] 黄明, 梁旭, 周绍斌编著. Java课程设计[M] 北京:电子工业出版社, 2006年目录JA V A程序课程设计任务书 (I)目录 (III)第1章引言 (1)1.1背景 (1)1.2课程设计内容 (1)1.3任务分工 (2)第2章实用型计算器的设计 (3)2.1需求分析 (3)2.2开发及运行环境 (3)2.3主要功能要求 (4)2.4系统模块化分析 (4)2.4.1 计算器主界面布局 (4)2.4.2实用型计算器各模块介绍 (7)2.5本章小结 (7)第3章计算器的具体实现 (8)3.1界面设计 (8)3.1.1用户登陆界面图 (8)3.1.2注册用户界面 (10)3.1.3 系统主界面 (12)3.1.4历史记录界面 (14)3.1.5 用户信息界面 (15)3.2程序设计及调试运行 (15)3.3本章小结 (32)第4章结束语 (33)致谢 (33)参考文献 (34)附录源代码 (34)第1章引言1.1 背景Java不依赖平台的特点使它受到广泛的关注,Java已成为网络时代最重要的语言之一。
Java之GUI布局之计算机案列我们要做一个简单计算器的布局如图一、首先你要有一个JFramepackage org.zy.view;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Dimension;import java.awt.FlowLayout;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JPanel;import javax.swing.JTextArea;import javax.swing.JTextField;public class Myframe extends JFrame{private JFrame frame;Panelup up = new Panelup();Paneldown down = new Paneldown();public Myframe(){frame = new JFrame("Caculator");new Jmenubar();frame.setLayout(new BorderLayout());frame.add(up,BorderLayout.NORTH);frame.add(down,BorderLayout.CENTER);frame.setJMenuBar(new Jmenubar());frame.setSize(350, 385);frame.setLocationRelativeTo(null );frame.setVisible(true);frame.setResizable(false);frame.setDefaultCloseOperation(EXIT_ON_CLOSE);}}二、其次,还要有JMenubarpackage org.zy.view;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;public class Jmenubar extends JMenuBar{public Jmenubar() {JMenu menu1 = new JMenu("查看(V)");JMenu menu2 = new JMenu("编辑(E)");JMenu menu3 = new JMenu("帮助(H)");JMenuItem menuitem1 = new JMenuItem("标准型");JMenuItem menuitem2 = new JMenuItem("科学性");JMenuItem menuitem3 = new JMenuItem("程序员");JMenuItem menuitem4 = new JMenuItem("复制");JMenuItem menuitem5 = new JMenuItem("历史记录");JMenuItem menuitem6 = new JMenuItem("查看帮助");JMenuItem menuitem7 = new JMenuItem("关于计算器");menu1.add(menuitem1);menu1.add(menuitem2);menu1.add(menuitem3);menu2.add(menuitem4);menu2.add(menuitem5);menu3.add(menuitem6);menu3.add(menuitem7);this.add(menu1);this.add(menu2);this.add(menu3);}}三、下面是一个北边(输入框)布局的panelpackage org.zy.view;import java.awt.Color;import java.awt.Font;import javax.swing.JPanel;import javax.swing.JTextArea;import javax.swing.JTextField;public class Panelup extends JPanel{private JTextField input;private JPanel panelup;public Panelup() {input = new JTextField(19);input.setBackground(Color.pink);JTextArea area = new JTextArea();input.setFont(new Font("ו", Font.BOLD, 30));input.setText("0.");input.setHorizontalAlignment(JTextField.RIGHT);this.add(input);}}四、南边(各个按键)布局的panelpackage org.zy.view;import java.awt.Dimension;import java.awt.FlowLayout;import javax.swing.JButton;import javax.swing.JPanel;public class Paneldown extends JPanel{public JPanel panel;public Paneldown() {JButton [] btn = new JButton [28];for(int i =0; i<btn.length; i++)btn[i] = new JButton();//先new出来,才能赋值panel = new JPanel(new FlowLayout(FlowLayout.LEFT,10,10));/*String[] bLabel = new String[28];* bLabel[0] = "";** for(int i=0; i<28; i++)* btn[i] = new JButton(bLabel[i]);* panel.add(btn[i]);**/btn[0]= new JButton("MC");btn[1]= new JButton("MR");btn[2]= new JButton("MS");btn[3]= new JButton("M+");btn[4]= new JButton("M-");btn[5]= new JButton("<--");btn[6]= new JButton("CE");btn[7]= new JButton("C");btn[8]= new JButton("+-");btn[9]= new JButton("√");btn[10]= new JButton("7");btn[11]= new JButton("8");btn[12]= new JButton("9");btn[13]= new JButton("/");btn[14]= new JButton("%");btn[15]= new JButton("4");btn[16]= new JButton("5");btn[17]= new JButton("6");btn[18]= new JButton("*");btn[19]= new JButton("1/x");btn[20]= new JButton("1");btn[21]= new JButton("2");btn[22]= new JButton("3");btn[23]= new JButton("-");btn[24]= new JButton("+");btn[25]= new JButton(".");btn[26]= new JButton("0");btn[27]= new JButton("=");for (int i = 0; i < btn.length; i++) {this.add(btn[i]);}for (int i = 0; i < btn.length; i++) {btn[i].setPreferredSize(new Dimension(60,40));}//赋值后才能改变sizebtn[26].setPreferredSize(new Dimension(125,40));btn[27].setPreferredSize(new Dimension(125,40));}}五、最后还要有一个主函数package org.zy.view;import javax.swing.JFrame;public class MainTest extends JFrame{public static void main(String[] args) {new Myframe();}}总结,总共五步,分别写在不同的包文件中。