南邮实验报告Java_小应用程序Applet设计
南邮实验报告Java-小应用程序Applet设计
}
}
2.HTML代码
<html>
<applet code=Mouseevent.class hight=500 width=300>
</applet>
</html>
五、测试数据及结果分析
测试数据:
1、
2、
3.在浏览器中打开Applet
六、实验总结
成绩
批阅人
日期
THANKS !!!
致力为企业和个人提供合同协议,策划案计划书,学习课件等等
实验 报告
(2015/2016学年 第1学期 )
课程名称:Java语言
实验名称:小应用程序Applet设计
实验时间:
指导单位:
指导老师:
学生姓名:班级学号:
学院(系):专业:
实验名称
小应用ቤተ መጻሕፍቲ ባይዱ序Applet设计
指导老师
实验类型
实验学时
2
实验时间
一、实验目的和要求
要求学生能在学习和理解课堂学习内容中JAVA小应用程序的基础上,通过实验,培养学生将JAVA小应用程序相关知识点(包括JAVA Applet和低级事件处理模型)有机结合,设计基于WEB浏览器的小应用程序的能力。
c=new Button("按钮2");
c.addActionListener(this);
add(label);
add(b);//将按钮加入网页
add(c);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b)
{
Frame frame=new Frame("提醒");
java-applet程序设计
实验九实验名称:Applet应用程序设计实验目的:了解Applet运行机制,掌握Java Applet程序结构和开发过程,了解Applet与浏览器的通信。
实验环境:PC机一台,软件Windows 7 +JDK编译器+JCreator编译环境+MyEclipse编译环境。
实验内容和步骤:1、显示"Welcome to Java Programming!"(源程序参见实验指导书)HTML 代码:<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>WelcomeApplet.html</title><meta http-equiv="keywords"content="keyword1,keyword2,keyword3"> <meta http-equiv="description"content="this is my page"><meta http-equiv="content-type"content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> </head><body><applet code="WelcomeApplet.class"width="260"height="100"></applet></body></html>HTML 代码:<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>WelcomeApplet3.html</title><meta http-equiv="keywords"content="keyword1,keyword2,keyword3"> <meta http-equiv="description"content="this is my page"><meta http-equiv="content-type"content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> </head><body><applet code="WelcomeApplet3.class"width="260"height="100"></applet></body></html>2、编写Applet显示字符串“This is HEBUT.”,设置字符串的显示位置、字体、大小和颜色。
南京邮电大学Java实验分析报告三
南京邮电大学Java实验报告三————————————————————————————————作者:————————————————————————————————日期:实验报告(2015/2016学年第一学期)课程名称JA V A语言程序设计实验名称流处理程序设计实验时间2015 年12 月25 日指导单位计算机学院软件工程系指导教师邓玉龙学生姓名李健琅班级学号B14070427 学院(系) 物联网专业网络工程实验报告实验名称流处理程序设计指导教师邓玉龙实验类型设计实验学时 2 实验时间2015-12-25 一、实验目的和任务要求学生能在学习和理解课堂学习内容中JA V A流编程理论的基础上,学习并逐步掌握JA V A流程序的编写和调试,学习根据处理需求对不同流的正确选择使用和组合使用方法。
二、实验环境(实验设备)PC微型计算机系统,Microsoft Windows操作系统,,SUN Java Development Kit开发工具包,NetBeans开发工具。
三、实验原理及内容(包括操作过程、结果分析等)实验内容:设计和编写一个程序从键盘读入一行字符串,将其写入一个文本文件中,再编写另一个程序从文本文件中读入字符串并在命令行窗口显示出来。
实验源程序:(1)写入文本程序:import java.io.*;import java.util.Scanner;public class Write {public static void main(String args[]) {File f=new File("test.txt"); //创建文本文件对象FileWriter fw; //字符输出流对象Scanner in = new Scanner(System.in); //准备从键盘输入字符串System.out.print("请输入文本字符:"); //键盘输入提示String s = in.nextLine(); //从键盘输入文本字符串try{fw=new FileWriter(f); //创建字符输出流对象fw.write(s + "\n"); //写字符串到文件fw.close(); //关闭字符输出流System.out.println("写文本文件完毕");}catch (IOException e) {System.out.println("写文件错误!");}}}(2)读取文本程序:import java.io.*;import java.util.Scanner;public class Read {public static void main(String args[]){File f;FileReader fr; //字符/输入流对象BufferedReader br; //字符输入缓冲流Scanner in =new Scanner(System.in); //准备从键盘输入字符串System.out.print("请输入要读入的文件名:"); //键盘输入提示String s=in.nextLine(); //从键盘输入文件名try{f =new File(s); //创建文件对象fr =new FileReader(f); //创建字符输入流对象br =new BufferedReader(fr); //字符输入流接入到输入缓冲流String str; //变量s存放读入的文本行System.out.println("读出的文本文件为:");while(true){str=br.readLine(); //从文本文件读入一行if(str == null) break; //读入结束System.out.println(str); //输出显示读入的文本}fr.close();br.close();}catch (IOException e) {System.out.println("您所要读写的文件不存在!");//显示错误信息}}}实验结果:四、实验小结(包括问题和解决方法、心得体会等)通过本次实验,让我学会了用Java语言进行文本文件的读写,并且加强了自己对Java语言的运用编程能力,真正理解了关于流处理的一些知识内容。
JAVA —APPLET实验内容实验指导
实验六 Applet应用程序一、实验目的1.理解Applet 程序的工作原理和使用方法;2.熟练掌握Applet程序开发;3.掌握多媒体的实现手段和使用方法;4.掌握Applet传递参数的方法。
二、实验要求1.掌握在 Applet 容器中添加组件的方法;2.熟练使用图形类 Graphics。
3.掌握插入图像与播放音乐的方法。
4.了解 Applet 的生命周期。
5.掌握向applet中传递参数。
三、实验内容(一)创建图形用户界面1.在Applet 中添加标签、按钮并使用网格布局程序功能:在Applet 容器中添加组件标签、按钮,并使用网格布局管理器排列组件在容器中的位置。
编写SY6_1.java 程序文件,源代码如下:import java.awt.*;import java.applet.Applet;public class SY6_1 extends Applet {Label l1;Button b1, b2, b3, b4, b5, b6;public void init() {setLayout(new GridLayout(3,3));l1=new Label("标签1");b1 = new Button("按钮1");b2 = new Button("按钮2");b3 = new Button("按钮3");b4 = new Button("按钮4");add(l1);add(b1);add(b2);add(b3);add(new Label());add(b4);add(new Button("按钮5"));add( new Button("按钮6"));add(new Label("标签2"));}}编译程序SY6_1.java。
Java Applet
实验报告课程名称Java程序设计实验项目实验四Java Applet系别电子信息工程专业/班级姓名实验日期_______________________ 成绩_______________________指导教师一、实验题目:实验四Java Applet二、实验内容:编写Applet程序,在界面上打印出自己的学号、姓名、班级以及由字符“*”组成的实心菱形三、程序清单及结果:(需要标明实现程序对应的实验内容,并给出合理的程序注释及运行结果)1)程序清单及注释//package appletdemo;import java.applet.Applet;import java.awt.Color;import java.awt.Graphics;public class MyApplet extends Applet {private static final long serialVersionUID = 1L;public void init(){}public void start()}public void stop(){}public void destroy(){}public void paint(Graphics g){for(int i=0; i < 7; i++){for(int j=0; j < 7; j++){g.setColor(Color.blue);if(i <= 3) //左上角{if(j <= 3){if(i + j >= 3)g.drawString("*", i*20+50, j*20+50);}}//g.setColor(Color.red);if(i > 3) //左下角{if(j <= 3){int tmp = i - 3;if(tmp <= j)g.drawString("*", i*20+50, j*20+50);}}//g.setColor(Color.yellow); //右上角if(i <= 3){if(j > 3){int tmp = j - 3;if(i >= tmp)g.drawString("*", i*20+50, j*20+50);}}//g.setColor(Color.green); //右下角if(i > 3){if(j > 3){if((i + j - 4) < 6)g.drawString("*", i*20+50, j*20+50);}}}//内层for}//外层forg.drawString("学号:xxxx",8*20,8*20);g.drawString("姓名:某某",8*20,9*20);g.drawString("班级:yyyy",8*20,10*20);}}下面是html文件:<HTML><HEAD><TITLE>第四次试验</TITLE></HEAD><BODY> <APPLET CODE=MyApplet.class WIDTH=300 HEIGHT=300 ></APPLET></BODY></HTML>2)程序运行结果浏览器打开如下:Appletviewer.exe运行如下:四、程序调试报告及总结这次实验,我学会了编写applet小应用程序,applet小应用程序与application应用程序不一样,applet程序必须有 init()、start()、stop()、destroy()方法,构成一个生命周期,而且不需要main方法,applet程序不能独立运行,只能用浏览器或者虚拟机运行。
实验八 Applet应用程序设计
《Java语言程序设计》实验报告this.setBounds(dim.width/4,dim.height/4,dim.width/2,dim.height/2); //窗口居中this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.addComponentListener(this); //注册组件事件监听器JPanel jpanel = new JPanel();this.getContentPane().add(jpanel,"North");button_t = new JButton("椭圆");jpanel.add(button_t);button_t.addActionListener(this);button_j = new JButton("矩形");jpanel.add(button_j);button_j.addActionListener(this);canvas = new RoseCanvas(Color.red); //创建自定义画布组件this.getContentPane().add(canvas,"Center");this.setVisible(true);}public void actionPerformed(ActionEvent e) //按钮单击事件处理方法{if(e.getSource()==button_t){i=1;canvas.seti(i);}if(e.getSource()==button_j){i=2;canvas.seti(i);}canvas.repaint(); //重画}public void componentResized(ComponentEvent e) //改变组件大小时{this.repaint(); //重画}public void componentMoved(ComponentEvent e) {}public void componentHidden(ComponentEvent e) {}public void componentShown(ComponentEvent e) {}public static void main(String arg[]){new RoseJFrame();}}class RoseCanvas extends Canvas //画布组件{private Color color; //颜色private static int i;public RoseCanvas(Color color){this.setColor(color);}public void seti(int i){this.i = i;;}public void setColor(Color color){this.color = color;}public void paint(Graphics g) //在Canvas上作图{int x0 = 50;//this.getWidth()/2; //(x0,y0)是组件正中点坐标int y0 = 50;//this.getHeight()/2;// g.setColor(color); //设置画线颜色// g.drawLine(x0,0,x0,y0*2); //画X轴// g.drawLine(0,y0,x0*2,y0); //画Y轴/* for (int j=40; j<200; j+=20) //画若干圈四叶玫瑰线for (int i=0; i<1023; i++) //画一圈四叶玫瑰线的若干点{double angle = i*Math.PI/512;double radius = j*Math.sin(2*angle);int x =(int) Math.round(radius * Math.cos(angle) * 2);int y =(int) Math.round(radius * Math.sin(angle));g.fillOval(x0+x,y0+y,1,1); //画直径为1的圆就是一个点}*/if(i==1){实验内容g.setColor(Color.red);//g.drawLine( x0, y0, x0, y0*2);g.drawOval(x0, y0, 100, 60);}if(i==2){g.setColor(Color.blue);g.drawRect(x0, y0, 100, 60);}}}运行结果:实验分析本次试验我建立在课本例题的基础上,略加修改而成。
JavaApplet小应用程序实验报告参考模板
西安财经学院管理学院 《Java 程序设计》 实验报告
实验名称 Java Applet 小应用程序 实验室 实验楼303 实验日期 5月27 一、实验目的及要求
1. 了解 Applet 类及其中的方法。
2. 掌握Applet 中添加AWT 组件的方法
3. 掌握Applet 中传递参数的方法;
4. 掌握Applet 运行的方法。
二、实验环境
jdk-6u12-windows-i586-p
三、实验内容
1. 在Applet 中添加任一个或多个AWT 组件,并响应该组件的事件处理过程,功能
不限。
2. 创建applet 小程序,通过html 文件传递若干个参数给该Applet ,功能不限。
四、实验步骤
实验一:1、编写好java 代码,放在记事本上,存储在E:\11下,如图:
2、再编写一个html 代码存放在同一个文件夹下面,保存为LabelDemo.html ,如图:
3、在命令提示符上运行如下图,并弹出小应用程序:
姓名
学号
班级
年级 大三
指导教师
实验二:
1、编写好java代码,放在记事本上,存储在E:\22下,如图:
2、再编写一个html代码存放在同一个文件夹下面,保存为TextFieldDemo.html,如图:
3、在命令提示符上运行如下图:
4、点击TextFieldDemo.html形成的网址,如图所示:
友情提示:范文可能无法思考和涵盖全面,供参考!最好找专业人士起草或审核后使用,感谢您的下载!。
第12章 Java 小应用程序(Applet)
第12章 Java 小应用程序(Applet)的设计
String text = null; public void init() { text = "A simple applet demo!"; setBackground(Color.YELLOW); } public void start() { System.out.println("starting..."); } public void stop()
第12章 Java 小应用程序(Applet)的设计
这里将不准备详细讨论有关HTML的问题,如果不 太了解,可以自己查阅相关资料。我们只稍微解释一 下上面的HTML代码。它通过标记<Applet>和参数告诉 浏览器下载执行一个Applet。其中,name这个参数表 示Applet的名字;codebase表示编译好的Applet字节码 的路径;code表示Applet文件的文件名;width和height 指定了该Applet的宽度和高度。name和codebase这两个 参数并不是必须的,如果Applet字节码文件和html文件 在同一路径下,则可以不加codebase参数。width和 height这两个参数一定要加,所以在Applet程序中可以 不需要设置Applet的Panel的大小。
第12章 Java 小应用程序(Applet)的设计
现在我们来看看这个Applet到底是如何运作的。大 家可能已经注意到,在上面的例子SimpleApplet中,没 有main()方法。一般的Java应用程序都是由main()方法 处进入,而在Applet中却不是这样。在构造函数完成了 它的任务后,浏览器将自动调用init()方法,所以通常 把Applet的基本初始化操作放在这里。init()结束后,浏 览器调用另一个称为start()的方法,start()通常在Applet 成为可见时被调用。
Java Applet实验报告
实验项目二Java Applet设计实验目的:1.了解Applet的生命周期和绘图周期,理解Applet与浏览器之间的关系与交互过程;2.了解Java的绘图机制,及实现更为出色绘图效果的Java 2D3.学会编写Applet程序。
实验要求:1.上机实验前,仔细阅读实验指导书,按照每一个实验题目的具体要求提前完成准备工作,如:查找资料、设计算法、写出全部源程序,做好预习笔记,做到有准备地上机。
2.上机实验课内,积极调试及修改程序。
得到正确运行结果后,积极主动要求指导教师验收程序,回答指导教师提出的问题。
3.上机实验课后,学生应根据实验数据及结果,完成实验报告。
实验报告是评定实验成绩的重要组成部分。
完成的实验报告交给实验小组组长,实验小组组长收齐本组的实验报告后统一交指导教师审阅评定。
4.每次上交的实验报告每个实验小组必须有1/5的成员为打印版的实验报告,其他成员可上交电子版的实验报告。
由实验小组组长确定交打印版的成员。
实验内容:任务1.编写一个Java Applet程序,该程序使用drawLine方法绘制一个5x9的网格。
请提出你的探究问题并回答。
import java.awt.*;import javax.swing.*;import java.applet.*;import java.awt.Graphics;public class GraphicsTester extends Applet {public void paint( Graphics g ) {resize(200, 500);super.paint( g );g.setColor(Color.blue); // call superclass's paint methodg.drawLine(10, 10,100,10);g.drawLine(10, 20,100,20 );g.drawLine(10, 30,100,30 );g.drawLine(10, 40,100,40 );g.drawLine(10, 50,100,50 );g.drawLine(10, 60,100,60 );g.drawLine(10, 10, 10,60 );g.drawLine(20, 10, 20, 60 );g.drawLine(30, 10, 30, 60 );g.drawLine(40, 10, 40, 60 );g.drawLine(50, 10, 50, 60 );g.drawLine(60, 10, 60, 60 );g.drawLine(70, 10, 70, 60 );g.drawLine(80, 10, 80, 60 );g.drawLine(90, 10, 90, 60 );g.drawLine(100,10, 100,60 );}}问题:如何改变窗口的大小?答:在编译的过程中提示applet标记需要宽度。
java实验报告1
实验项目名称:实验1 applet程序设计【实验目的】1、理解JA V A applet程序的运行机制。
2、学习编写JA V A applet网络应用程序。
3、学习创建并使用内嵌类。
【实验原理】或【实验任务】开发一个Java applet,用它可以玩流行的三子棋程序。
在游戏中,两个游戏者在3×3网格的有效单元格中用鼠标轮流作标记,一个人用×作为标记,另一个人用O作标记。
如果一个对局者在网格的水平、垂直或对角线方向上作了三个连续标记,游戏就以这个游戏者得胜而告终。
当网格中的所有单元格都标满了标记而没有产生优胜者,就出现了平局。
【实验软件环境】(含实验所用软件及版本)1.实验所用的是Java SDK编程工具2.使用的事java jdk 1.6.0版本【上机步骤】(含基本步骤,主要程序结果及异常情况记录等)1、设置环境变量,保证在任何目录下都可以使用Java SDK编程工具。
如果Java SDK的安装目录为C:\Program Files\Java\jdk1.6.0,则在命令提示符状态(从附件中进入)下键入如下命令行设置环境变量:path :C:\Program Files\Java\jdk1.6.0\bin2、新建记事本文档,保存名为“TicTacToe.java”,另存为“D:\实验1”中。
其中,代码在实验指导书中已给出。
3、进入命令提示符状态,在源程序文件存放目录下键入如下命令编译源程序:javacTicTacToe.java 以及使用Java解释器运行源程序:java TicTacToe。
下图分别为运行后游戏前和游戏后的结果:4、用Windows记事本编辑名为TicTacToe.html的网页文件,将上面创建的applet程序嵌入其中;并将该网页文件和上面创建的applet程序存放到相同的目录中。
网页文件的源代码指导书中如给出:5、用Windows的浏览器打开网页文件,嵌入在浏览器中的applet游戏程序将被浏览器启动运行。
applet程序设计
实验1 applet程序设计一、实验目的:1、理解JAVA applet程序的运行机制。
2、学习编写JAVA applet网络应用程序。
3、学习创建并使用内嵌类。
二、实验任务:开发一个Java applet,用它可以玩流行的三子棋程序。
在游戏中,两个游戏者在3×3网格的有效单元格中用鼠标轮流作标记,一个人用×作为标记,另一个人用O作标记。
如果一个对局者在网格的水平、垂直或对角线方向上作了三个连续标记,游戏就以这个游戏者得胜而告终。
当网格中的所有单元格都标满了标记而没有产生优胜者,就出现了平局。
如下图所示:(a)标记为×的游戏者获胜 (b)平局-----没有优胜者由于在面板上可以方便地进行绘图,所以网格中的每个单元格应是面板类的对象。
可以定义一个JPanel类的派生类Cell,称之为单元格类。
由于游戏者要用鼠标在单元格中做标志,所以单元格类Cell应该能处理鼠标事件。
单元格类Cell中应设置一个char型的数据成员token,用来标记单元格的状态。
没有做标记的单元格,其数据成员token的值为空格字符‘’;用×作了标记的单元格,其数据成员token的值为字符‘×’;用O作了标记的单元格,其数据成员token的值为字符‘O’。
三子棋棋盘由9个单元格组成,可以声明二维对象数组new Cell[3][3]来表示。
并引入一个名为whoseTurn的char型变量,该变量的初值为‘×’,游戏者1填充完标记后,whoseTurn的值就变为‘O’;在游戏的过程中,whoseTurn的值在‘×’和‘O’之间依次轮换。
当游戏结束时,设置whoseTurn 为‘’(空)。
可以创建isWon(char token)方法来判断指定标记的游戏者是否是胜者;创建isFull()方法判断是否所有的单元格都被占满。
很明显,程序中应有两个类:一个是处理单个单元格操作的Cell类,另一个是控制整个游戏并处理所有单元格的TicTacToe类。
java课实验报告二-GUI设计和JavaApplet
图形用户界面设计和小应用程序一.实验目的:1.掌握常见组件的定义共处五项原则2.掌握事件处理的原理和事件处理程序的编程方法3.熟悉JApplet类,掌握applet的程序结构二、实验内容:1.创建组件2.写出相应的事件处理程序,创建监听程序对象,注册监听程序对象三.实验要求:1.编写一个猜数字的游戏,按下“产生随机数”按钮产生一个0~9的随机数,则在屏幕的提示框显示“输入所猜测的数字”,当输入所猜测的数字并按“确定”按钮后,在提示框中提示“输入正确”(或“猜小了”、或“猜大了”)。
程序如下:package aa;import java.awt.*;import java.awt.event.*;public class GuessNum extends Frame implements ActionListener{ int min=0;int max=100;int i=0;int number=(int)(10*Math.random());TextField text1=new TextField("请输入0到9之间的整数");TextField text2=new TextField();Button btn=new Button("确定");Label lab1=new Label("信息提示区:");Label lab2=new Label("请输入猜测数字:");GuessNum(){super("猜字游戏");setSize(500,300);setVisible(true);setLayout(null);add(lab1);lab1.setBounds(30,80,100,30);add(text1);text1.setBounds(150,80,300,30);text1.setEditable(false);add(lab2);lab2.setBounds(30,130,100,30);add(text2);text2.setBounds(150,130,300,30);add(btn);btn.setBounds(200,180,100,30);btn.addActionListener(this);addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent we){System.exit(0);}});}public static void main(String[] args){new GuessNum();}public void actionPerformed(ActionEvent e){try{i=Integer.parseInt(text2.getText());if(i<min||i>max){text1.setText("输入错误,请重新输入一个"+min+"到"+max+"之间的整数");text2.setText("");}else {if(i<number){min=i;text1.setText("猜小了");text2.setText("");}else if(i>number){max=i;text1.setText("猜大了");text2.setText("");}else if(i==number){text1.setText("恭喜猜中了!!数字为"+number);}}}catch(NumberFormatException ie){text1.setText("输入错误,请重新输入一个"+min+"到"+max+"之间的整数");text2.setText("");}}}运行结果:程序如下:package aa;import java.awt.Graphics;import javax.swing.*;public class DrawCircle extends JApplet {public void init() {CirclePanel panel = new CirclePanel();add(panel);}}class CirclePanel extends JPanel {public void paintComponent(Graphics g) {super.paintComponent(g);int d = getWidth() > getHeight() ? getHeight() : getWidth();int circleX = d / 2;int i = 0;while ((circleX - i * 5) > 0) {i++;g.drawOval(circleX - i * 5, circleX - i * 5, 2*i * 5, 2*i *5);}}}运行结果:对应的HTML文件:四、实验结论:通过这次上机实验,我掌握了基本的GUI设计及javaApplet小程序的设计基础以及其常见组件的定义共处原则,还熟悉了图像用户界面设计里事件处理的原理以及事件响应程序的编程方法。
Java多线程与Applet
安徽师范大学数计学院实验报告专业名称 11计科课程 JAVA高级程序设计实验名称多线程与Applet 姓名学号 110704012一、实验目的掌握多线程程序和小应用程序设计方法。
二、实验内容1应用多线程技术设计一个如下功能的程序:在窗体工作区域有10个小鸟图像在独立运动,每个小鸟受控于一个线程,如果某个小鸟与其它小鸟碰撞,则分别向反方向运动。
2.设计一个小应用程序,该程序能选择自由绘画,自由画椭圆,自由画直线。
三.实验过程和步骤(作业要求:程序源码及运行结果截图,该文档文件名为你的姓名加上你的学号)1、多线程程序Cage.javaimport java.awt.Button;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.Graphics;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class Cage extends Frame implements ActionListener { Button quit = new Button("Quit");Button start = new Button("Start");Button stop = new Button("Stop");Bird birds[] = new Bird[10];public Cage() {super("Cage with Birds");addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}});setLayout(new FlowLayout());add(quit);quit.addActionListener(this);add(start);start.addActionListener(this);add(stop);stop.addActionListener(this);validate();setSize(300, 300);setVisible(true);for (int i = 0; i < birds.length; i++) {int x = (int) (getSize().width * Math.random());int y = (int) (getSize().height * Math.random());birds[i] = new Bird(this, x, y);}for (int i = 0; i < birds.length - 1; i++) {for (int j = i + 1; j < birds.length; j++) {int xx = Math.abs(birds[i].x - birds[j].x);int yy = Math.abs(birds[i].y - birds[j].y);if (xx <= 30 && yy <= 40) {int x = (int) (getSize().width * Math.random());int y = (int) (getSize().height* Math.random());birds[i] = new Bird(this, x, y);}}}}public void actionPerformed(ActionEvent ae) {if (ae.getSource() == stop)for (int i = 0; i < birds.length; i++)birds[i].halt();if (ae.getSource() == start)for (int i = 0; i < birds.length; i++) {birds[i].halt();birds[i] = new Bird(this, birds[i].x, birds[i].y);}if (ae.getSource() == quit)System.exit(0);}public void paint(Graphics g) {for (int i = 0; i < birds.length; i++)if (birds[i] != null)birds[i].draw(g);}public static void main(String args[]) {Cage table = new Cage();}}Bird.javaimport java.awt.Graphics;import java.awt.Image;import java.awt.Toolkit;public class Bird extends Thread {int xdir = 2 * (1 - 2 * (int) Math.round(Math.random()));int ydir = 2 * (1 - 2 * (int) Math.round(Math.random()));boolean running = false;Cage cage = null;int x, y;Image bird = Toolkit.getDefaultToolkit().getImage("F:/workspace/example/src/thread/bird.png");public Bird(Cage _cage, int _x, int _y) {cage = _cage;x = _x;y = _y;start();}public void start() {running = true;super.start();}public void halt() {running = false;}public void run() {while (running) {move();iscash();try {sleep(50);} catch (InterruptedException ie) {System.out.println("Thread interrupted");}cage.repaint();}}public void move() {x += xdir;y += ydir;if (x > cage.getSize().width-30) {x = cage.getSize().width-30;xdir *= (-1);}if (x < 0){x=0;xdir *= (-1);}if (y > cage.getSize().height-40) {y = cage.getSize().height-40;ydir *= (-1);}if (y < 40){y=40;ydir *= (-1);}}public void iscash() {for (int j = 0; j < cage.birds.length; j++)cash(this, cage.birds[j]);}public void cash(Bird a, Bird b) {if (a == b)return;int xx = Math.abs(a.x - b.x);int yy = Math.abs(a.y - b.y);if (xx <= 30 && yy <= 40) {a.xdir *= (-1);a.ydir *= (-1);b.xdir *= (-1);b.ydir *= (-1);move();}}public void draw(Graphics g) {g.drawImage(bird, x, y, 30, 40, cage);}}2、小应用程序DoodleCanvas.javaimport java.awt.Canvas;import java.awt.Color;import java.awt.Graphics;import java.awt.Point;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.event.MouseMotionListener;public class DoodleCanvas extends Canvas implements MouseListener, MouseMotionListener {private final int CANVAS_WIDTH = 200;private final int CANVAS_HEIGHT = 200;private int lastX, lastY, reX, reY, leX, leY, current, currY, currX;Doodle dl = new Doodle();public int find = 0;public DoodleCanvas() {addMouseListener(this);addMouseMotionListener(this);setBackground(Color.white);setSize(CANVAS_WIDTH, CANVAS_HEIGHT);}public void mousePressed(MouseEvent event) {Point first = event.getPoint();lastX = first.x;lastY = first.y;reX = first.x;reY = first.y;}public void mouseDragged(MouseEvent event) {Graphics page = getGraphics();Point current = event.getPoint();currX = current.x;currY = current.y;if (find == 0) {page.drawLine(lastX, lastY, current.x, current.y);lastX = current.x;lastY = current.y;}if (find == 1 || find == 2) {repaint();}}public void paint(Graphics g) {super.paint(g);Graphics page = getGraphics();if (find == 1) {page.drawLine(reX, reY, currX, currY);lastX = currX;lastY = currY;}if (find == 2) {if (reX < currX) {page.drawOval(reX, reY, Math.abs(reX - currX),Math.abs(reY - currY));} else {page.drawOval(currX, currY, Math.abs(reX - currX),Math.abs(reY - currY));}lastX = currX;lastY = currY;}}public void clear() {Graphics page = getGraphics();page.drawRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT);repaint();}public void mouseReleased(MouseEvent event) {Point relese = event.getPoint();Graphics page = getGraphics();leX = relese.x;leY = relese.y;}public void mouseMoved(MouseEvent e) {}public void mouseClicked(MouseEvent e) {}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}}Doodle.javaimport java.applet.Applet;import java.awt.Button;import java.awt.Color;import java.awt.GridLayout;import bel;import java.awt.Panel;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class Doodle extends Applet implements ActionListener { private int APPLET_WIDTH = 300;private int APPLET_HEIGHT = 250;private Label titleLabel;private DoodleCanvas canvas;private Button clearButton, oval, line;private Panel pl;public void init() {titleLabel = new Label("Doodle using the mouse.");titleLabel.setBackground(Color.cyan);add(titleLabel);canvas = new DoodleCanvas();add(canvas);clearButton = new Button("Clear");line = new Button("Line");oval = new Button("Oval");clearButton.addActionListener(this);line.addActionListener(this);oval.addActionListener(this);pl = new Panel();add(pl);pl.setBackground(Color.cyan);pl.setLayout(new GridLayout(3, 1, 5, 5));pl.add(line);pl.add(oval);pl.add(clearButton);setBackground(Color.cyan);setSize(APPLET_WIDTH, APPLET_HEIGHT);}public void actionPerformed(ActionEvent event) { if (event.getSource() == line) {canvas.find = 1;}if (event.getSource() == oval) {canvas.find = 2;}if (event.getSource() == clearButton) {canvas.find = 0;canvas.clear();}}}。
JAVA小应用程序Applet设计(计算器)实验报告(附代码)
JAVA⼩应⽤程序Applet设计(计算器)实验报告(附代码)⼩应⽤程序Applet设计⼀、课题内容和要求内容:设计和编写⼀个可以⽤⿏标操作的Applet⼩应⽤程序和相应的HTML 页⾯,观察Applet的执⾏过程,测试程序⿏标⽤户交互操作的效果。
要求:要求学⽣能在学习和理解课堂学习内容中JAVA⼩应⽤程序的基础上,通过实验,培养学⽣将JAVA⼩应⽤程序相关知识点(包括JAVA Applet和低级事件处理模型)有机结合,设计基于WEB浏览器的⼩应⽤程序的能⼒。
⼆、设计思路分析class App:⼀个Java Applet计算器的主类public void init():完成初始化appletpublic boolean action():实现事件处理的⽅法public void doOperator():运算及运算结果输出操作public void doForeScreen():数字和⼩数点输出到⽂本框操作public void doClear():清空操作三、概要设计public class App extends Applet {TextField tfAnswer;Button b0, b1, b2, b3, b4, b5, b6, b7, b8, b9;Button bPoint, bEqual, bPlus, bMinus, bClear, bMulti, bDivision;String OperatorCurrent, OperatorPre;String ForeScreen, BackScreen;boolean isFloat = false;public void init();public boolean action(Event e, Object o);public void doOperator()public void doForeScreen(String s);public void doClear();}事件处理:运算及运算结果输出:四、详细设计import java.applet.*;public class App extends Applet {TextField tfAnswer;// 定义变量Button b0, b1, b2, b3, b4, b5, b6, b7, b8, b9;Button bPoint, bEqual, bPlus, bMinus, bClear, bMulti, bDivision;String OperatorCurrent, OperatorPre;String ForeScreen, BackScreen;boolean isFloat = false;public void init() {// 初始化OperatorCurrent = new String("");OperatorPre = new String("");ForeScreen = new String("0");// 保证输⼊字符串不为空防⽌计算错误BackScreen = new String(""); setBackground(Color.gray);setLayout(null);// 设为空布局便于⾃定义组件位置tfAnswer = new TextField();// 设置⽂本框样式tfAnswer.setBounds(20, 20, 175, 40);tfAnswer.setFont(new Font(BackScreen, Font.BOLD, 28));add(tfAnswer);tfAnswer.setText(ForeScreen);bClear = new Button("C");// 设置按钮样式bClear.setBounds(20, 70, 40, 40);add(bClear);bDivision = new Button("/");bDivision.setBackground(Color.green);bDivision.setBounds(65, 70, 40, 40);add(bDivision);bMulti = new Button("*");bMulti.setBackground(Color.green);bMulti.setBounds(110, 70, 40, 40);add(bMulti);bMinus = new Button("-");bMinus.setBackground(Color.green);bMinus.setBounds(155, 70, 40, 40);b7.setBounds(20, 115, 40, 40);b7.setBackground(Color.orange); add(b7);b8 = new Button("8");b8.setBackground(Color.orange); b8.setBounds(65, 115, 40, 40); add(b8);b9 = new Button("9");b9.setBackground(Color.orange); b9.setBounds(110, 115, 40, 40); add(b9);bPlus = new Button("+");bPlus.setBackground(Color.green); bPlus.setBounds(155, 115, 40, 85); add(bPlus);b4 = new Button("4");b4.setBackground(Color.orange); b4.setBounds(20, 160, 40, 40); add(b4);b5 = new Button("5");b5.setBackground(Color.orange); b5.setBounds(65, 160, 40, 40); add(b5);b6 = new Button("6");b6.setBackground(Color.orange); b6.setBounds(110, 160, 40, 40); add(b6);b1 = new Button("1");b1.setBackground(Color.orange); b1.setBounds(20, 205, 40, 40); add(b1);b2 = new Button("2");b2.setBackground(Color.orange);b3 = new Button("3");b3.setBackground(Color.orange);b3.setBounds(110, 205, 40, 40);add(b3);bEqual = new Button("=");bEqual.setBackground(Color.green);bEqual.setBounds(155, 205, 40, 85);add(bEqual);b0 = new Button("0");b0.setBackground(Color.orange);b0.setBounds(20, 250, 85, 40);add(b0);bPoint = new Button(".");bPoint.setBackground(Color.orange);bPoint.setBounds(110, 250, 40, 40);add(bPoint);}public boolean action(Event e, Object o) {// 实现事件处理的⽅法String s = new String("");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.");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);}}return true;}public void doOperator() {// 运算及运算结果输出操作double dFore, dBack;Double d;if (OperatorPre.equals("")) {// 上⼀运算符没有则直接输出BackScreen = ForeScreen;// 输⼊的数据转⼊后台并清空,⽤后台输出它ForeScreen = "";tfAnswer.setText(BackScreen);repaint();} else {// 上⼀运算符存在则运算后输出dFore = (new Double(ForeScreen)).doubleValue();dBack = (new Double(BackScreen)).doubleValue();ForeScreen = "";// 运算结果转⼊后台并清空,⽤后台输出它BackScreen = tfAnswer.getText();if (OperatorPre.equals("+")) {d = new Double((dBack + dFore));if (OperatorPre.equals("-")) {d = new Double((dBack - dFore));BackScreen = d.toString();}if (OperatorPre.equals("*")) {d = new Double((dBack * dFore));BackScreen = d.toString();}if (OperatorPre.equals("/")) {d = new Double((dBack / dFore));BackScreen = d.toString();}tfAnswer.setText(BackScreen);repaint();}OperatorPre = OperatorCurrent;// 现运算符变上⼀运算符repaint();}public void doForeScreen(String s) {// 数字和⼩数点输出到⽂本框操作ForeScreen += s;if (ForeScreen.length() > 1 && ForeScreen.startsWith("0")&& !ForeScreen.contains("."))// 以0开头的长度⼤于⼀的⾮⼩数去掉开头的0 ForeScreen = ForeScreen.substring(1);tfAnswer.setText(ForeScreen);repaint();}public void doClear() {// 清空操作OperatorCurrent = "";OperatorPre = "";ForeScreen = "0";BackScreen = "";isFloat = false;tfAnswer.setText(ForeScreen);}Html代码:。
Applet小应用程序设计及异常处理.
add(panel,BorderLayout.CENTER);//将面板放入容器中央并使用新的布局管理器
validate(); //强迫容器根据新的布局管理器重新摆放组建
{
ScoreInsert scoreinsert=null; //定义类对象并附初值空
JMenuBar bar;
JMenu menu;
JMenuItem insert,pos;
Container con=null;
CardLayout card=null;
JLabel label; //标签类极其对象
}
}
package jappletcoursescore;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ScoreManageTest extends JApplet implements ActionListener//实现ActionListener接口
程序源代码:
packagejappletcoursescore;
publicclassStudent
{
//定义各变量
privateStringnumber;//学号
privateStringname;//姓名
privateStringsex;//性别
privateStringbanji;//班级
privateStringgrade;//班号
con=getContentPane(); //取得组件添加到容器
scoreinsert=new ScoreInsert();//初始化以下各对象
java applet
《java 网络编程》实验报告实验题目:实验二:java applet一:实验目的1、熟悉Applet类。
2、掌握Applet的程序结构。
3、学会编写启动Applet程序的html文档。
4、观察Applet程序生命周期。
二:实验内容及要求1、编写Applet程序1,显示init(),start(),stop(),paint(),和destroy()方法的执行顺序和执行次数。
要求:编写调用Applet程序1的html文档1,利用appletviewer运行html文档1,启动Applet程序1。
改变Applet窗口大小,使其最大化,最小化,查看init(),start(),stop(),paint(),和destroy()方法的执行情况。
2.编写Applet程序2,在屏幕上画一组同心圆,相邻两圆的直径大小相差10(pixel)(画满整个屏幕)。
要求:编写调用Applet程序2的html文档2,利用appletviewer运行html文档启动Applet程序2。
改变Applet窗口大小,观察同心圆个数的变化情况。
三:实验步骤(一)1、打开elipse,新建java项目File,类Applet1。
2、按照要求编辑源代码。
首先定义五个变量,init,start, stop, paint, destroy,用来计算其调用五个方法的次数。
赋初值0,然后编写五个方法init(),start(),stop(),paint(),和destroy()体即可。
3. 编写html文档,并命名为123.html. 内容如下:<html><body bgcolor="ddd000"><Applet code ="Applet1.class" width="500" height="1000"></applet></body></html>4.运行程序,查看结果。
Java程序设计:第九章 小应用程序(Applet)
} // 方法paint结束
} //类J_Applet结束
<HTML>
<HEAD> <TITLE> An applet Example </TITLE> </HEAD>
<BODY>
<APPLET CODE= "J_Applet.class" WIDTH= 280 HEIGHT= 140>
<PARAM NAME="TestPara" VALUE="TestValue">
– public void init( ): 在小应用程序的生命周期中只会被调 用一次,而且是在第一次加载小应用程序时
– public void start( ): 当小应用程序在启动或重新启动时, 会调用此方法
– public void stop( ): 当小应用程序被图标化或从当前网 页转到其它网页时,会调用此方法
codebase="/~junhai/java/"
WIDTH= 200 HEIGHT= 200>
</APPLET>
2020/12/14
16
JAR压缩文档和标记符ARCHIVE
• 将小应用程序所需要的所有图像、声音 以及“.class”文件压缩成一个JAR压缩文 档
2020/12/14
25
示例
【例9-5】t09_03_02 J_List.java,同时是应用程序与小应用程序 的图像显示例程
2020/12/14
26
网络程序设计
Network Programming 第九章 小应用程序(Applet)
APPLET程序设计实验报告
广州大学实验报告学院工商管理学院专业、班级电子商务姓名、学号课程名称Java语言程序设计项目名称Applet程序设计实验时间:2013年5月20 日Applet程序设计实验报告开课实验室:文俊东606 2013年5月20日将字符串”enter.au”,”return.au”,”ding.au”分别存入EnterFile,ExitFile和ClickFile中.4.在MouseHandler类中,覆盖 (overriding )public void mouseEntered(MouseEvent e);mouse进入applet显示区时被调用public void mouseExited(MouseEvent e); mouse退出applet显示区时被调用5.用语句 Lb.setForeground(Color.BLUE);//具体颜色可自选6.播放声音请用 play(getCodeBase(), 文件名);7.剩下的工作就是在Click中写出相应事件产生时,Click应该执行的动作了。
三、实验过程原始记录(数据、图表、计算等)1.先定义几个数据成员2. 在Applet的init()方法中,用 lb.getForeground()读取当前颜色,并存入yanse中;3. 将字符串”enter.au”,”return.au”,”ding.au”分别存入EnterFile,ExitFile和ClickFile中.4.在click类中建立函数,设置颜色和声音。
5.在MouseHandler类中,覆盖 (overriding )1).public void mouseEntered(MouseEvent e);mouse进入applet显示区时被调用的颜色、音乐函数2).public void mouseEntered(MouseEvent e);mouse点击applet显示区时被调用的颜色、音乐函数3).public void mouseEntered(MouseEvent e);mouse退出applet显示区时被调用的颜色、音乐函数四、实验结果及分析运行开始:鼠标进入程序区域:鼠标点击并离开程序区域:五、实验总结与体会本次实验相对比较简单,完成本次实验后让我更清楚java语言的函数调用和监听器的作用以及用法。
APPLET程序设计实验报告
广州大学实验报告学院工商管理学院专业、班级电子商务姓名、学号课程名称Java语言程序设计项目名称Applet程序设计实验时间:2013年5月20 日Applet程序设计实验报告开课实验室:文俊东606 2013年5月20日将字符串”enter.au”,”return.au”,”ding.au”分别存入EnterFile,ExitFile和ClickFile中.4.在MouseHandler类中,覆盖 (overriding )public void mouseEntered(MouseEvent e);mouse进入applet显示区时被调用public void mouseExited(MouseEvent e); mouse退出applet显示区时被调用5.用语句 Lb.setForeground(Color.BLUE);//具体颜色可自选6.播放声音请用 play(getCodeBase(), 文件名);7.剩下的工作就是在Click中写出相应事件产生时,Click应该执行的动作了。
三、实验过程原始记录(数据、图表、计算等)1.先定义几个数据成员2. 在Applet的init()方法中,用 lb.getForeground()读取当前颜色,并存入yanse中;3. 将字符串”enter.au”,”return.au”,”ding.au”分别存入EnterFile,ExitFile和ClickFile中.4.在click类中建立函数,设置颜色和声音。
5.在MouseHandler类中,覆盖 (overriding )1).public void mouseEntered(MouseEvent e);mouse进入applet显示区时被调用的颜色、音乐函数2).public void mouseEntered(MouseEvent e);mouse点击applet显示区时被调用的颜色、音乐函数3).public void mouseEntered(MouseEvent e);mouse退出applet显示区时被调用的颜色、音乐函数四、实验结果及分析运行开始:鼠标进入程序区域:鼠标点击并离开程序区域:五、实验总结与体会本次实验相对比较简单,完成本次实验后让我更清楚java语言的函数调用和监听器的作用以及用法。
实验10_Applet小应用程序
实验10_Applet小应用程序实验目的:1. 理解Applet生命周期2. 掌握Applet小应用程序设计的基本方法实验内容:一、编辑、编译和运行程序:(1) Applet生命周期import java.awt.*;import javax.swing.*;public class Life_1 extends JApplet {JTextArea text = new JTextArea();public void init() {Container c =getContentPane();text.setBackground(Color.GREEN);text.setEditable(false);c.add(text );addWords("初始化...");}public void start() { addWords("开始..."); }public void stop() { addWords("停止..."); }public void destroy() { addWords("清除..."); }void addWords(String s) {System.out.println(s);text.append(s+"\n"); }}(2) Applet小应用程序import javax.swing.*;import java.awt.*;public class JAp_1 extends JApplet {public void init() {JButton button1=new JButton(new ImageIcon("图片/Previous.gif "));JButton button2=new JButton(new ImageIcon("图片/go.GIF"));JButton button3=new JButton(new ImageIcon("图片/Next.gif"));button1.setToolTipText("向上翻页按钮");button2.setToolTipText("跳转按钮");button3.setToolTipText("向下翻页按钮");JLabel label=new JLabel("图像标签", new ImageIcon("图片/2.gif"),JLabel.CENTER);JPanel p1=new JPanel();p1.add(button1); p1.add(button2); p1.add(button3);p1.setBackground(Color.cyan);Container c=getContentPane();c.setBackground(Color.cyan);c.add(p1,BorderLayout.NORTH);c.add(label,BorderLayout.CENTER);}}二、用面向对象方法编程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/**
*
*/
private static final long serialVersionUID = 1L;
Button b,c;
public void init()
{
Label label=new Label("请按按钮:");
b=new Button("按钮1");//构造按钮
b.addActionListener(this);//监视器
四、实验原理(源代码)
1.JAVA代码
package cn.zhang.experiment_2;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class Mouseevent extends Applet implements ActionListener
二、实验环境(实验设备)
PC微型计算机系统,Microsoft Windows操作系统,SUN Java Development Kit开发工具包,NetBeans开发工具。(本人使用IDE为Windows下Eclipse,jdk为8.0版本)
三、实验内容
设计和编写一个可以用鼠标操作的Applet小应用程序和相应的HTML页面,观察Applet的执行过程,测试程序鼠标用户交互操作的效果。
{
Frame frame=new Frame("提醒");
பைடு நூலகம்frame.setSize(230,100);
frame.setLocation(100,100);
frame.add(new Label("你按了按钮2"));
frame.setVisible(true);
frame.validate();
frame.setSize(230,100);//设置大小
frame.setLocation(100,100);//设置位置
frame.add(new Label("你按了按钮1"));//添加标签
frame.setVisible(true);//设置是否可见
frame.validate();
}
else if(e.getSource()==c)
}
}
}
2.HTML代码
<html>
<applet code=Mouseevent.class hight=500 width=300>
</applet>
</html>
五、测试数据及结果分析
测试数据:
1、
2、
3.在浏览器中打开Applet
六、实验总结
成绩
批阅人
日期
c=new Button("按钮2");
c.addActionListener(this);
add(label);
add(b);//将按钮加入网页
add(c);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b)
{
Frame frame=new Frame("提醒");
实验 报告
(2015/2016学年 第1学期 )
课程名称:Java语言
实验名称:小应用程序Applet设计
实验时间:
指导单位:
指导老师:
学生姓名:班级学号:
学院(系):专业:
实验名称
小应用程序Applet设计
指导老师
实验类型
实验学时
2
实验时间
一、实验目的和要求
要求学生能在学习和理解课堂学习内容中JAVA小应用程序的基础上,通过实验,培养学生将JAVA小应用程序相关知识点(包括JAVA Applet和低级事件处理模型)有机结合,设计基于WEB浏览器的小应用程序的能力。