Java计算器设计与实现

合集下载

用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实现简易计算器

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语言在网络编程方面的优势使得网络编程有了更好的选择。

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世纪,随着社会经济的迅速发展和科学技术的全面进步,人类社会已进入信息和网络时代。

java课程设计报告计算器

java课程设计报告计算器

目录一、课程设计目的 (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中,完成界面设计。

JAVA计算器论文

JAVA计算器论文

JAVA计算器论文摘要:本文介绍了JAVA计算器的设计和实现过程。

计算器是一种常见的工具,方便人们进行数学运算。

本文使用JAVA编程语言,采用面向对象的设计思想,实现了一个简单的计算器功能。

通过用户界面,用户可以输入数学表达式,并进行运算。

在实现过程中,使用了JAVA的图形用户界面库Swing,通过文本框和按钮等控件,实现了用户界面的设计。

通过对用户的输入进行解析,通过JAVA的计算功能,计算出结果。

在实验阶段,本文对计算器进行了一系列的测试,并找到了一些可能出现的问题并进行了改进,保证了计算器的正确性和稳定性。

实验结果表明,该计算器能够进行简单的数学运算,具有较高的精确性和用户友好性。

1.引言计算器是一种常见的工具,用于计算、解决各种数学问题。

计算器的出现大大方便了人们的生活和学习。

随着计算机的发展,计算器也逐渐发展成为计算机软件的一部分,通过软件实现计算器的功能,使计算器更易于使用和拓展。

本文使用JAVA编程语言,设计和实现了一个简单的计算器功能。

2.设计和实现2.1设计思路JAVA计算器的设计采用了面向对象的设计思想,将计算器的各个功能抽象成对象,并通过调用对象的方法来实现计算器的各种功能。

为了方便用户的使用,设计了一个用户界面,用户可以输入计算表达式,并通过点击按钮来进行运算。

JAVA的图形用户界面库Swing提供了丰富的组件和容器,本文使用了文本框、按钮等控件,来实现用户界面的设计。

2.2用户界面设计用户界面是用户和计算器之间的纽带,影响用户对计算器的使用体验。

本文实现了一个简单的用户界面,主要由一个文本框和一系列按钮组成。

用户可以在文本框中输入需要计算的表达式,并通过点击按钮来触发相应的计算操作。

2.3计算过程在用户输入表达式后,通过解析表达式,将其分解为操作数和操作符。

操作数可以是整数、小数或者其他表达式。

通过调用JAVA的计算功能,对操作数进行计算,并得到计算结果。

将结果显示在用户界面中。

java实验报告——简单计算器的编写五篇范文

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程序设计计算器实验报告

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语言诞生以来,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 课程设计背景日常生活中我们经常会遇到一些小型数据计算的问题,本课程设计就是以此为出发点,设计了这样一个简单的计算器,用以实现基本的数学运算。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3
图 4.3 类的结构图
4.1 第 1 个任务:计算器窗体的实现
4.1.1 窗体及布局管理器
开发图形用户界面应用程序首先要选择顶层容器,所有其他组件必须放到
顶层容器中。Frame 就是一个顶层容器,其可以创建窗体,用于容纳其他组件,
如面板组件 Panel、按钮组件 Button、文本域组件 TextField 等。
implements
8
setSize(300,200); addWindowListener(this); } public void windowClosing(WindowEvent e) { System.exit(0); //退出系统。 } public void windowClosed(WindowEvent e) {}
图 4.3。 类图中的箭头表示类的调用关系。 箭头指向被调用的类。 Constructor 表示该方法是类的构造方法。 类的属性前面的“-”号表示该属性是私有的。 类的操作前面的“+”号表示该操作是公有的。 类图中类的属性在 Java 语言中称为类的成员变量。 类图中类的操作在 Java 语言中称为类的成员方法。
public void windowOpened(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
public void windowDeiconified(WindowEvent e) {}
public void windowActivated(WindowEvent e) {}
图 4.1 计算器
1
图 4.1 是典型的计算器。使用计算器可以执行加(+)、减(-)、乘(*)和除(/) 运算、求平方根(sqrt)、求立方根(cbrt)、求倒数(1/x)、求相反数(+/-)、将 显示的数字与内存中存储的数字相加(M+)、调用存储的数字(MR)、清除内存中 存储的数字(MC)、删除当前显示数字的最后一位,即退格(Backspace)、清除显 示的数字,即清零(C)。
7
图 4.5 窗体事件处理示意图 程序清单 4.1.2 BorderLayoutDemo2.java import java.awt.*; import java.awt.event.*; public class BorderLayoutDemo2 extends Frame WindowListener{ public BorderLayoutDemo2(){ super("边框布局演示"); add(new Button("东"),BorderLayout.EAST); add(new Button("西"),BorderLayout.WEST); add(new Button("南"),BorderLayout.SOUTH); add(new Button("北"),BorderLayout.NORTH); add(new Button("中"),BorderLayout.CENTER);
9
注册窗体监听器
addWindowListener
10
窗体适配器
WindowAdapter
11
容器
Container
12
流布局
FlowLayout
13
网格布局
GridLayout
14
动作监听器
ActionListener
15
字符串缓冲区
StringBuffer
16
导入
import
17
事件
event
18
public class BorderLayoutDemo extends Frame implements WindowListener (3)在构造方法中注册窗体事件监听器。 句法:事件源.addWindowListener(窗体事件监听者)。
(4)实现 WindowListener 的所有方法,重写关注的方法。 public void windowClosing(WindowEvent e) {
System.exit(0); //退出系统。 } public void windowClosed(WindowEvent e) {} public void windowOpened(WindowEvent e) {} public void windowIconified(WindowEvent e) {} public void windowDeiconified(WindowEvent e) {} public void windowActivated(WindowEvent e) {} public void windowDeactivated(WindowEvent e) {}
标 题 和 边 框 的 顶 层 窗 口 。 Window 和 Frame 的 默 认 布 局 都 是 边 框 布 局
BorderLayout。
Frame 有 4 种构造方法,其中常用的有 2 种。如表 4.2 所示。
表 4.2 Frame 类的常用构造方法
构造方法签名
用途
Frame()
构造一个最初不可见的 Frame对象
5
(4)代码第 12 行至第 14 行为主方法。第 13 行创建 AWT 窗体并设置其可见 性为真,即显示窗体。
程序清单 4.1.1 运行结果如图 4.4。
图 4.4 边框布局演示
该 AWT 窗体的右上角有三个图标,分别控制窗体的最小化、最大化和关闭。 最小化图标和最大化图标的功能是内置的,无需编程实现。而当用户单击关闭 图标时,AWT 窗体无任何响应。如果用户要关闭 AWT 窗体,只能通过 Windows 任 务管理器结束 java.exe 进程来实现。因此,关闭图标的功能需要编程实现。
public void windowDeactivated(WindowEvent e) {}
public static void main(String[] args) { new BorderLayoutDemo2().setVisible(true);
} } 程序清单 4.1.2 编译运行结果如图 4.4,单击窗体的关闭图标,窗体关闭, 退出系统。查看 Windows 任务管理器的进程,会发现 java.exe 进程已结束。 程序清单 4.1.2 比程序清单 4.1.1 多了以下几行代码: import java.awt.event.*; 上面代码的作用是导入 AWT 事件处理包,凡是涉及事件处理的 java 程序, 都要导入这个包。 public class BorderLayoutDemo2 extends Frame
4.1.2 窗体事件处理 Java 事件处理机制采用事件源->事件监听者模型,产生事件的对象称为事
件源,接收并处理事件的对象称为事件监听器。 窗体事件是指示窗体状态改变的低级别事件。当打开、关闭、激活、停用、
图标化或取消图标化窗体时,或者焦点转移到窗体内或移出窗体时,由窗体生 成 WindowEvent 事件。产生事件的组件称为事件源。例如,窗体产生 WindowEvent 事件,窗体就是事件源。当用户单击某个按钮时会产生动作事件 ActionEvent, 该按钮就是事件源。
Frame 类的定义如下:
public class Frame extends Window implements MenuContainer
由定义可知,窗体类Frame是窗口类Window的子类,其实现了菜单容器接口
MenuContainer。Window 是一个没有边界和菜单栏的顶层窗口。Frame 是带有
【术语中英对照速查】
表 4.1 术语中英对照速查表
序号
中文
英文
1
抽象窗口工具包
AWT(Abstract Window Toolkit)
2
窗体、框架
Frame
3
面板
Panel
4
文本域
TextField
5
按钮
Button
6
边框布局
BorderLayout
7
窗体事件
WindowEvent
8
窗体监听器
WindowListener
4
Frame(String title) 构造一个最初不可见的、具有指定标题的 Frame 对象 程序清单 4.1.1 演示向 AWT 窗体添加 5 个按钮的效果。 程序清单 4.1.1 BorderLayoutDemo.java
import java.awt.*; public class BorderLayoutDemo extends Frame{
9
implements WindowListener 上 面代码的作用是继承 Frame 类实现 WindowListener 接口。这使得 BorderLayoutDemo2 类成为窗体事件监听器。 addWindowListener(this); 上面代码的作用是注册窗体事件监听器。
6
下面以自定义类BorderLayoutDemo为例,讲解窗体事件处理的基本方法。 请参看图 4.5。 (1)导入AWT事件处理包。 import java.awt.event.*; (2) BorderLayoutDemo继承Frame类并实现WindowListener接口,成为窗体事件 监听器。
public BorderLayoutDemo(){ super("边框布局演示"); add(new Button("东"),BorderLayout.EAST); add(new Button("西"),BorderLayout.WEST); add(new Button("南"),BorderLayout.SOUTH); add(new Button("北"),BorderLayout.NORTH); add(new Button("中"),BorderLayout.CENTER); setSize(300,200);
相关文档
最新文档