首先让我们了解GUI支持多少个包:
- AWT(抽象窗口工具包)
- 摆动
回归制作GUI应用程序: Java于1996年1月23日推出(JDK 1.0),当时它只支持CUI(字符用户界面)应用程序。但在1996年,微软的VB(Visual Basic)成为GUI编程的首选。因此,匆匆忙忙(即7天内)的Java开发人员已经提供了操作系统(OS)对GUI的支持。现在,button等组件取决于平台(即在每个平台上都会有不同的大小、形状和按钮)。但是他们将所有平台上的这些组件进行了交叉,并提供了一个包含这些交叉点的小型库,该库采用AWT(抽象窗口工具包)技术,但没有对话框等高级功能。
现在要运行Applet,java需要浏览器,当时只有微软的“Internet Explorer”,但微软相信垄断。因此,“SUN Micro System”(开发Java的公司)与另一家名为“Netscape”(开发Java脚本)的公司签订了合同,现在“Netscape”公司也被称为“Mozilla Firefox”,我们都知道它是一款浏览器。现在,这两家公司开发了一种名为“SWING”的技术,其好处是SWING组件由Java自己生产。因此,现在它是独立于平台的,并且还添加了一些AWT技术中没有的附加功能。所以我们可以说SWING比AWT技术先进得多。
什么是Applet? 小程序是一种可以嵌入网页的Java程序。它在web浏览器中运行,在客户端工作。小程序使用小程序或对象标记嵌入HTML页面,并托管在web服务器上。 小程序用于使网站更具活力和娱乐性。
要点:
- 所有小程序都是 JAVA小程序。小程序 班
- 小程序不是独立的程序。相反,它们可以在web浏览器或小程序查看器中运行。JDK提供了一个名为applet viewer的标准applet viewer工具。
- 通常,小程序的执行不会从main()方法开始。
- 小程序窗口的输出不是由 系统出来println() .而是通过各种AWT方法进行处理,例如 拉绳 .
小程序的生命周期:
理解上图中显示的各种方法的调用顺序很重要。小程序启动时,按以下顺序调用以下方法:
- init()
- 开始()
- 油漆()
当小程序终止时,将发生以下方法调用序列:
- 停止()
- 摧毁()
让我们更仔细地看看这些方法。
1.init(): 这个 init() 方法是第一个被调用的方法。这是你应该初始化变量的地方。这个方法叫做 只有一次 在小程序运行期间。
2.开始(): 这个 开始() 方法在之后调用 init() 。它也被调用以在小程序停止后重新启动小程序。注意 init() 调用一次,即第一次加载小程序时 开始() 每次小程序的HTML文档显示在屏幕上时调用。因此,如果用户离开网页并返回,小程序将在 开始() .
3.油漆(): 这个 油漆() 每次必须重新绘制基于AWT的小程序的输出时,都会调用。出现这种情况可能有几个原因。例如,运行小程序的窗口可能会被另一个窗口覆盖,然后被打开。或者,小程序窗口可以最小化,然后恢复。 油漆() 在小程序开始执行时也会调用。无论什么原因,只要小程序必须重新绘制其输出, 油漆() 被称为。 这个 油漆() 方法有一个类型为的参数 图样 。此参数将包含图形上下文,该上下文描述小程序运行时的图形环境。每当需要输出到小程序时,都会使用此上下文。 注:这是上述所有方法中唯一一个参数化的方法。它的原型是 公共空间涂料(图g) 其中g是类图形的对象引用。
现在 问题出现了:
Q 在paint()方法的原型中,我们创建了一个对象引用,但没有创建它的对象。但是,在不创建对象的情况下,如何创建对象引用呢?
答案。 每当我们在参数中传递对象引用时,对象将由其调用者本身提供。在本例中,paint()方法的调用方是browser,因此它将提供一个对象。当我们在普通Java程序中创建一个非常基本的程序时,也会发生同样的事情。例如:
public static void main(String []args){}
在这里,我们创建了一个对象引用,但没有创建它的对象,但它仍然运行,因为它是调用者,即JVM将为它提供一个对象。
4.停止(): 这个 停止() 例如,当web浏览器在转到另一个页面时离开包含小程序的HTML文档时,将调用。什么时候 停止() 调用时,小程序可能正在运行。你应该使用 停止() 在小程序不可见时暂停不需要运行的线程。您可以在需要时重新启动它们 开始() 如果用户返回页面,则调用。
5.销毁(): 这个 摧毁() 当环境确定小程序需要从内存中完全删除时,将调用。此时,您应该释放小程序可能正在使用的所有资源。这个 停止() 方法总是在之前调用 摧毁() .
创建Hello World小程序: 让我们从HelloWorld小程序开始:
JAVA
// A Hello World Applet // Save file as HelloWorld.java import java.applet.Applet; import java.awt.Graphics; // HelloWorld class extends Applet public class HelloWorld extends Applet { // Overriding paint() method @Override public void paint(Graphics g) { g.drawString( "Hello World" , 20 , 20 ); } } |
说明:
- 上面的java程序以两条import语句开始。第一条import语句从Applet包中导入Applet类。您创建的每个基于AWT(抽象窗口工具包)的小程序必须是小程序类的子类(直接或间接)。第二条语句导入 图样 来自AWT包的类。
- 程序的下一行声明类HelloWorld。这个类必须声明为public,因为它将被程序之外的代码访问。在地狱世界里, 油漆() 已宣布。此方法由AWT定义,必须由小程序覆盖。
- 在…内 油漆() 是打电话给 抽绳() ,它是 图样 班此方法输出从指定X,Y位置开始的字符串。其一般形式如下:
void drawString(String message, int x, int y)
这里,message是从x,y开始输出的字符串。在Java窗口中,左上角是位置0,0。呼吁 抽绳() 在小程序中,从位置20,20开始显示消息“Hello World”。
请注意,小程序没有 主要的() 方法与Java程序不同的是,小应用程序不会在任何时候开始执行 主要的() .事实上,大多数小程序甚至没有 主要的() 方法相反,当小程序的类名传递给小程序查看器或网络浏览器时,小程序开始执行。
运行HelloWorld小程序: 输入HelloWorld的源代码后。java,以编译java程序的相同方式编译(使用 爪哇语 命令)。然而,使用 JAVA 命令将生成错误,因为它不是应用程序。
java HelloWorldError: Main method not found in class HelloWorld, please define the main method as: public static void main(String[] args)
有 二 运行小程序的标准方式:
- 在与Java兼容的web浏览器中执行小程序。
- 使用小程序查看器,如标准工具小程序查看器。小程序查看器在窗口中执行小程序。这通常是测试小程序最快、最简单的方法。
下面将介绍每种方法。
1.使用支持java的web浏览器: 要在web浏览器中执行小程序,我们必须编写一个简短的HTML文本文件,其中包含加载小程序的标记。为此,我们可以使用APPLET或OBJECT标记。使用APPLET,下面是执行HelloWorld的HTML文件:
<applet code="HelloWorld" width=200 height=60></applet>
width和height语句指定小程序使用的显示区域的尺寸。小程序标记包含其他几个选项。创建此html文件后,可以使用它执行小程序。
注: Chrome和Firefox不再支持NPAPI(Java小程序所需的技术)。参考 在这里
2.使用appletviewer: 这是运行小程序的最简单方法。要使用小程序查看器执行HelloWorld,还可以执行前面显示的HTML文件。例如,如果前面的HTML文件是用 RunHelloWorld。html,则以下命令行将运行HelloWorld:
appletviewer RunHelloWorld.html
3.带java源文件的appletviewer: 如果在包含小程序标记的Java源代码文件的开头包含注释,则代码将用必要HTML语句的原型进行记录,只需使用Java源代码文件启动小程序查看器,即可运行已编译的小程序。如果使用此方法,HelloWorld源文件如下所示:
JAVA
// A Hello World Applet // Save file as HelloWorld.java import java.applet.Applet; import java.awt.Graphics; /* <applet code="HelloWorld" width=200 height=60> </applet> */ // HelloWorld class extends Applet public class HelloWorld extends Applet { // Overriding paint() method @Override public void paint(Graphics g) { g.drawString( "Hello World" , 20 , 20 ); } } |
使用这种方法,首先编译HelloWorld。java文件,然后只需运行以下命令即可运行小程序:
appletviewer HelloWorld
为了证明上述观点,即油漆被反复调用。
为了证明这一点,我们首先研究一下小程序中的“状态栏”是什么: “状态栏”在小程序的左下角窗口中可用。要使用状态栏并在其中写入内容,我们使用方法showStatus(),其原型为 公共状态(字符串) 默认情况下,状态栏显示“小程序已启动” 默认情况下,背景色为白色。
为了证明paint()方法被反复调用,下面是代码:
注意:此代码与Netbeans IDE有关。
JAVA
//code to illustrate paint //method gets called again //and again import java.applet.*; // used //to access showStatus() import java.awt.*; //Graphic //class is available in this package import java.util.Date; // used //to access Date object public class GFG extends Applet { public void paint(Graphics g) { Date dt = new Date(); super .showStatus( "Today is" + dt); //in this line, super keyword is // avoidable too. } } |
注意:-这里我们可以看到,如果屏幕最大化或最小化,我们将得到一个更新的时间。这表明paint()被反复调用。
HTML上的小程序功能
- 显示web应用程序的动态网页。
- 播放声音文件。
- 显示文档
- 播放动画
对Java小程序的限制
出于安全原因,Java小程序受到以下限制:
- 小程序无法加载库或定义本机方法。
- 小程序通常无法读取或写入执行主机上的文件。
- 小程序无法读取某些系统属性。
- 小程序无法建立网络连接,除非它来自主机。
- 小程序无法在执行它的主机上启动任何程序。
本文由 克里希纳·巴蒂亚和帕万·戈帕尔·拉亚帕蒂 并通过 苏里亚普里 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。