实验三
一、实验目的
1、学习java程序中简单字符和图形界面的字符和数字数据的输入输出。
2、学习java程序中画圆方法的具体应用。
3、掌握数据类型转换类型中的将字符串型转换为整型。
二、实验任务
编写一个类实现一个圆。
属性:Center:代表圆心坐标的Point类对象(Point是awt包中的类,每个
Point类对象拥有x和y两个属性,代表一个点的横纵坐标)
Radius双精度型,代表圆的半径
方法:
MyCircle(Point p,double r)构造方法,创建圆对象时为其属性赋初值MyCircle(MySquare s)构造方法,根据圆的外接正方形创建这个圆对象并初始化其圆心和半径
get Center()获得圆对象的圆心Point对象
get Radius()获得圆对象的半径数值
calPerimeter()计算当前圆对象的周长并返回(提示:可使用常数Math.PI)
calArea()计算当前圆对象的面积并返回
drawMyCircle(Graphics g)在给定的Graphics对象g中画出当前圆对象
(提示:可以使用Graphics类的方法drawOval())
定义一个类MyRectangle代表矩形,为矩形派生出一个子类MySquare代表正方形。
在以上类的基础上,定义接口Drawable,其中包含一个抽象方法drawShape(),使MyRectangle和MyCircle类都实现这个接口。
三、实验步骤
1、Java程序代码(*.java)和详细的行注释
//文件名称为“MyCircle.java”
import java.applet.Applet;//将java.applet包中创建applet所必需的类和applet
用来与其applet上下文通信的类引入到当前程序
import java.awt.*;//把JAVA系统中有关抽象窗口工具的包(系统类库)引入到当前程序实现接口
import java.awt.event.*;//将java.awt.event包中由AWT组件所激发的各类事件的接口和类引入到当前程序
public class MyCircle extends Applet implements ActionListener//定义主类,在浏览器中显示信息
{
Label result1,result2,result3,result4;//定义了4个标签
TextField in1,in2,in3,in4,in5;//定义了5个文本框
Button btn;//定义一个按钮
int x,y,r;//定义三个整数
public void init()//显示界面
{
result1=new Label("请输入半径:");//创建标签的对象
in1=new TextField(6);//为文本框分配内存
result2=new Label("请输入圆心坐标:");//创建标签的对象
in2=new TextField(10);//为文本框分配内存
in3=new TextField(10);//为文本框分配内存
java修改html文件result3=new Label("圆的面积是:");//创建标签的对象
in4=new TextField(10);//为文本框分配内存
result4=new Label("圆的周长是:");//创建标签的对象
in5=new TextField(10);//为文本框分配内存
btn=new Button("执行");//创建按钮的对象
add(result1);
add(in1);
add(result2);
add(in2);
add(in3);
add(btn);
add(result3);
add(in4);
add(result4);
add(in5);/*将定义好的4个标签、5个文本框、1个按钮添加到界面*/
btn.addActionListener(this);//按钮监听事件
}
public void paint(Graphics g)//paint方法,画图
{
Graphics2D g2=(Graphics2D)g;//创建Graphics2D的引用
g2.d);//获取颜
g.drawOval(x,y,r,r);//画圆
g.drawString("My radius is:"+r,x,y);//显示字符串
in4.setText(""+(3.14*r*r));//获取圆的面积
in5.setText(""+(3.14*2*r));//获取圆的周长
}
public void actionPerformed(ActionEvent e)//系统定义的接口,监听事件并处理动作事件
{
r=Integer.Text());
x=Integer.Text());
y=Integer.Text());/*数据类型转换,将字符串型转换整型*/ repaint();//刷新页面
}
}
HTML程序:
<HTML>//标记开始
<BODY>//文档体
<APPLET CODE="MyCircle.class"HEIGHT=600WIDTH=1000>//将java.Applet 字节码嵌入HTML文件,并设置java.Applet程序在所对应的wed页面中占用区域的高度和宽度的大小
</APPLET>
</BODY>//文档体元素标记
</HTML>//结束
2、程序的运行(包括运行的过程、界面和结果图)
首先编写如上所示的源程序,保存文件名称为“MyCircle.java”,然后编译源程序,编译完成后,生成两个字节码文件MyCircle.class和DrawTest.class,将这两个字节码文件与源文件存放在相同的目录中,因为此为Applet小程序:必须嵌入在HTML页面中的非独立程序,部署在Web服务器,在浏览器中的虚拟机上(JVM)执,因此,执行HTML程序,得到如图1所示的窗口:
图1
列举例子,在第一个文本框中输入圆的半径,第二和第三个文本框中分别输入横坐标和纵坐标,结果显示如图2:
图2
3、结果分析
1、该实验题程序的前三行分别加载了Java类库中的类:ja.applet.*、java.awt.*和java.awt.event.*。其
中,凡是Java Applet程序,必须加载java.applet包;凡是使用图形界面,必须加载java.awt包;凡是使用图形界面的事件处理,必须加载java.awt.event包。因为在这实验程序中都有使用到图形界面和其事件处理,所以必须加载上述的三个包。
2、因为这是一个Applet小程序必须嵌入在HTML页面中的非独立程序,部署在Web服务器,在浏览器中的虚拟机上(JVM)执行,因此,在编译完毕源程序发现无误后,就将其源程序的字节码给嵌入HTML文件中执行。
3、首先在第一个文本框中输入这个圆的半径,在第二第三个文本框中输入横坐标和纵坐标的数值,然后按下按钮“执行”,最后,在第四个和第五个文本框中就会分别显示出圆的面积和圆的周长。
4、此程序有一个特别的地方就是,你可以根据你自己喜欢的颜,在下面的语句中更改颜的单词即可:
“g2.d);//获取颜”
本程序原定的就是红,如果不喜欢红,那就把“g2.d);”中的“red”改为蓝“blue”或者是其他运行者喜欢的颜,改变了保存一下,重新编译“.java”文件,然后再在HTML中执行程序,得出的圆的结果就是你改的那个颜了。
四、实验心得
1、编写调试程序要注意程序编写的规则,.java文件名要与主类名相同,JAVA 对字母的大小写特别敏感,输入时要特别注意大小写字母的定义,千万别犯主类名与.java文件名不同的错误。
2、APPLET程序不能直接运行,必须嵌入在HTML页面中的非独立程序,部署在Web服务器,在浏览器中的虚拟机上(JVM)执行。
3、编写该程序的时候,曾经试过,一个程序中只能画圆或是只能求圆的周长和面积,不能在画圆的同时也能计算显示圆的周长和面积,即使在画圆程序中有定义到求圆的周长和面积的方法,在执行程序的时候还是没有计算显示出圆的周长和面积,另外,当初我在编这个程序时,也遇到了,无论点坐标如何变化,显示圆的位置还是没有变化。琢磨了很久,也参考了书本的诸多例子,才发现,原来我的求圆的周长和面积的方法不对劲,我当初是把那个求圆的和面积分别作为一个方法来弄,但是谁知道只是需要在结果中直接调用就可以了;改变坐标值时,显示圆的位置不变,是因为我在方法参数那里已经定死了在某一点显示结果。把其中的常量改为变量就正确了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论