小应用程序Applet设计.docx

上传人:b****7 文档编号:24049482 上传时间:2023-05-23 格式:DOCX 页数:12 大小:108.41KB
下载 相关 举报
小应用程序Applet设计.docx_第1页
第1页 / 共12页
小应用程序Applet设计.docx_第2页
第2页 / 共12页
小应用程序Applet设计.docx_第3页
第3页 / 共12页
小应用程序Applet设计.docx_第4页
第4页 / 共12页
小应用程序Applet设计.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

小应用程序Applet设计.docx

《小应用程序Applet设计.docx》由会员分享,可在线阅读,更多相关《小应用程序Applet设计.docx(12页珍藏版)》请在冰豆网上搜索。

小应用程序Applet设计.docx

小应用程序Applet设计

小应用程序Applet设计

一、课题内容和要求

内容:

设计和编写一个可以用鼠标操作的Applet小应用程序和相应的HTML页面,观察Applet的执行过程,测试程序鼠标用户交互操作的效果。

要求:

要求学生能在学习和理解课堂学习内容中JAVA小应用程序的基础上,通过实验,培养学生将JAVA小应用程序相关知识点(包括JAVAApplet和低级事件处理模型)有机结合,设计基于WEB浏览器的小应用程序的能力。

二、设计思路分析

classApp:

一个JavaApplet计算器的主类

publicvoidinit():

完成初始化applet

publicbooleanaction():

实现事件处理的方法

publicvoiddoOperator():

运算及运算结果输出操作

publicvoiddoForeScreen():

数字和小数点输出到文本框操作

publicvoiddoClear():

清空操作

三、概要设计

publicclassAppextendsApplet{

TextFieldtfAnswer;

Buttonb0,b1,b2,b3,b4,b5,b6,b7,b8,b9;

ButtonbPoint,bEqual,bPlus,bMinus,bClear,bMulti,bDivision;

StringOperatorCurrent,OperatorPre;

StringForeScreen,BackScreen;

booleanisFloat=false;

publicvoidinit();

publicbooleanaction(Evente,Objecto);

publicvoiddoOperator()

publicvoiddoForeScreen(Strings);

publicvoiddoClear();

}

事件处理:

运算及运算结果输出:

四、详细设计

Java代码:

importjava.awt.*;

importjava.applet.*;

publicclassAppextendsApplet{

TextFieldtfAnswer;//定义变量

Buttonb0,b1,b2,b3,b4,b5,b6,b7,b8,b9;

ButtonbPoint,bEqual,bPlus,bMinus,bClear,bMulti,bDivision;

StringOperatorCurrent,OperatorPre;

StringForeScreen,BackScreen;

booleanisFloat=false;

publicvoidinit(){//初始化

OperatorCurrent=newString("");

OperatorPre=newString("");

ForeScreen=newString("0");//保证输入字符串不为空防止计算错误

BackScreen=newString("");

setBackground(Color.gray);

setLayout(null);//设为空布局便于自定义组件位置

tfAnswer=newTextField();//设置文本框样式

tfAnswer.setBounds(20,20,175,40);

tfAnswer.setFont(newFont(BackScreen,Font.BOLD,28));

add(tfAnswer);

tfAnswer.setText(ForeScreen);

bClear=newButton("C");//设置按钮样式

bClear.setBounds(20,70,40,40);

add(bClear);

bDivision=newButton("/");

bDivision.setBackground(Color.green);

bDivision.setBounds(65,70,40,40);

add(bDivision);

bMulti=newButton("*");

bMulti.setBackground(Color.green);

bMulti.setBounds(110,70,40,40);

add(bMulti);

bMinus=newButton("-");

bMinus.setBackground(Color.green);

bMinus.setBounds(155,70,40,40);

add(bMinus);

b7=newButton("7");

b7.setBounds(20,115,40,40);

b7.setBackground(Color.orange);

add(b7);

b8=newButton("8");

b8.setBackground(Color.orange);

b8.setBounds(65,115,40,40);

add(b8);

b9=newButton("9");

b9.setBackground(Color.orange);

b9.setBounds(110,115,40,40);

add(b9);

bPlus=newButton("+");

bPlus.setBackground(Color.green);

bPlus.setBounds(155,115,40,85);

add(bPlus);

b4=newButton("4");

b4.setBackground(Color.orange);

b4.setBounds(20,160,40,40);

add(b4);

b5=newButton("5");

b5.setBackground(Color.orange);

b5.setBounds(65,160,40,40);

add(b5);

b6=newButton("6");

b6.setBackground(Color.orange);

b6.setBounds(110,160,40,40);

add(b6);

b1=newButton("1");

b1.setBackground(Color.orange);

b1.setBounds(20,205,40,40);

add(b1);

b2=newButton("2");

b2.setBackground(Color.orange);

b2.setBounds(65,205,40,40);

add(b2);

b3=newButton("3");

b3.setBackground(Color.orange);

b3.setBounds(110,205,40,40);

add(b3);

bEqual=newButton("=");

bEqual.setBackground(Color.green);

bEqual.setBounds(155,205,40,85);

add(bEqual);

b0=newButton("0");

b0.setBackground(Color.orange);

b0.setBounds(20,250,85,40);

add(b0);

bPoint=newButton(".");

bPoint.setBackground(Color.orange);

bPoint.setBounds(110,250,40,40);

add(bPoint);

}

publicbooleanaction(Evente,Objecto){//实现事件处理的方法

Strings=newString("");

if((e.target==b0)||(e.target==b1)||(e.target==b2)

||(e.target==b3)||(e.target==b4)||(e.target==b5)

||(e.target==b6)||(e.target==b7)||(e.target==b8)

||(e.target==b9)){//获取数字按钮数据并在控制台和文本框输出

if(e.target!

=bPoint){//获取数字

s=(String)o;

doForeScreen(s);

}

}

if((e.target==bPoint)&&!

ForeScreen.contains(".")){//保证原数不含小数点的情况下获取小数点并在控制台和文本框输出

s=(String)o;

if(ForeScreen.equals(""))//原来没有输入数据则用0.

{

doForeScreen("0.");

}else//原来有输入数据则用.

{

doForeScreen(s);

}

}

if(e.target==bClear){//清除按钮进行清除操作

doClear();

}

if((e.target==bMulti)||(e.target==bDivision)

||(e.target==bPlus)||(e.target==bMinus)

||(e.target==bEqual)){//加减乘除等于按钮获取运算操作符并进行运算操作

if(ForeScreen!

=""){//重新输入数字进行运算操作

OperatorCurrent=((String)o);

doOperator();

}else{//没有重新输入数字则作为上一运算符--->保证不输入连续的同一运算符

OperatorPre=((String)o);

}

}

returntrue;

}

publicvoiddoOperator(){//运算及运算结果输出操作

doubledFore,dBack;

Doubled;

if(OperatorPre.equals("")){//上一运算符没有则直接输出

BackScreen=ForeScreen;//输入的数据转入后台并清空,用后台输出它

ForeScreen="";

tfAnswer.setText(BackScreen);

repaint();

}else{//上一运算符存在则运算后输出

dFore=(newDouble(ForeScreen)).doubleValue();

dBack=(newDouble(BackScreen)).doubleValue();

ForeScreen="";//运算结果转入后台并清空,用后台输出它

BackScreen=tfAnswer.getText();

if(OperatorPre.equals("+")){

d=newDouble((dBack+dFore));

BackScreen=d.toString();

}

if(OperatorPre.equals("-")){

d=newDouble((dBack-dFore));

BackScreen=d.toString();

}

if(OperatorPre.equals("*")){

d=newDouble((dBack*dFore));

BackScreen=d.toString();

}

if(OperatorPre.equals("/")){

d=newDouble((dBack/dFore));

BackScreen=d.toString();

}

tfAnswer.setText(BackScreen);

repaint();

}

OperatorPre=OperatorCurrent;//现运算符变上一运算符

repaint();

}

publicvoiddoForeScreen(Strings){//数字和小数点输出到文本框操作

ForeScreen+=s;

if(ForeScreen.length()>1&&ForeScreen.startsWith("0")

&&!

ForeScreen.contains("."))//以0开头的长度大于一的非小数去掉开头的0

ForeScreen=ForeScreen.substring

(1);

tfAnswer.setText(ForeScreen);

repaint();

}

publicvoiddoClear(){//清空操作

OperatorCurrent="";

OperatorPre="";

ForeScreen="0";

BackScreen="";

isFloat=false;

tfAnswer.setText(ForeScreen);

repaint();

}

}

Html代码:

DOCTYPEhtml>

"JavaApplet计算器"

五、测试数据及其结果分析

1正常输入:

1.88+99=

C.666/33=

C7.33*26=

0.5-1-3=

2结果:

输出正常。

六、调试过程中的问题

1、一开始计算器只能在按等号后实现运算没考虑到连续计算的需要,在采用功能合并,让加减乘除和等号都已上一运算符为准进行运算,并且在等号后以有无输入数字决定是否重新计算解决了该问题。

2、计算器初始化时数据为空值会在转为double型后出现转换错误,故一开始就让数据取0并显示。

在输入数据后将该0字符删除便可。

七、程序设计总结

1、通过该实验掌握了用JAVA小应用程序设计一个简单计算器的方法。

 

2、学会了编写计算器的算法、JAVAApplet和低级事件处理模型。

3、掌握了将JAVA小应用与html页面结合,并在web浏览器上通过该计算器实现与用户交互。

4、在逐步地优化和调试中实现了一个较实用的界面。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1