Applet

 Applets用于为Web应用程序提供交互功能,这些功能无法单独由HTML提供。它们可以捕获鼠标输入,并且还具有按钮或复选框等控件。响应于用户动作,小应用程序可以改变提供的图形内容。这使得小程序非常适合演示,可视化和教学。

  一个applet也可以只是一个文本区域; 例如,为某些远程系统提供跨平台的命令行界面。如果需要,一个小程序可以离开专用区域并作为单独的窗口运行。然而,applet对applet专用区域之外的网页内容几乎没有任何控制,所以它们对于改善站点外观通常不太有用,而不像其他类型的浏览器扩展。Applets还可以播放本机不受浏览器支持的格式的媒体。以HTML编码的页面可能会在其中嵌入传递给小程序的参数。因此,根据传递的参数,相同的小程序可能会有不同的外观。

  Java applet扩展了该类java.applet.Applet,或者Swing小程序javax.swing.JApplet。必须重写applet类中的方法以在其内部设置用户界面的类(Applet)是其后代的Panel后代Container。由于小程序是从容器继承的,因此它具有与普通Java应用程序基本相同的用户界面可能性,包括具有用户特定可视化的区域。

以下示例说明了通过java.applet包使用Java小程序。该示例还使用Java Abstract Window Toolkit(AWT)中的类生成消息“ Hello,world! ”作为输出。

import  java.applet。* ; 
import  java.awt。* ; //“Hello,world!”的Applet代码 例。 //这应该保存在名为“HelloWorld.java”的文件中。 公共 HelloWorld 扩展 Applet { //在屏幕上打印一条消息(x = 20,y = 10)。 public void paint Graphics g { g drawString之“你好,世界!” 20 10 ); //在屏幕上绘制一个圆圈(x = 40,y = 30)。 g drawArc 40 30 20 20 0 360 ); //在屏幕上绘制一个矩形(x1 = 100,y1 = 100,x2 = 300,y2 = 300)。 g drawRect中100 100 300 300 ); //在屏幕上绘制正方形(x1 = 100,y1 = 100,x2 = 200,y2 = 200)。 g drawRect中100 100 200 200 ); } } 

简单的小程序可以在Internet上自由共享,以定制支持插件的应用程序。

编译完成后,生成的.class文件可以放在Web服务器上,并通过<applet><object>标签在HTML页面中调用。

例如:

<!DOCTYPE html> 
< html > 
< head > < title > HelloWorld_example.html </ title > </ head > < body > < h1 > Java applet示例</ h1 > < p > 这里是: < applet code = “HelloWorld.class” height = “40” width = “200” > 这是HelloWorld.class运行的地方。 </ applet > </ p > </ body > </ html > 

当页面被访问时,它将如下所示:

一个Java applet示例
这里是:你好,世界!

为了尽量减少下载时间,小程序可以以jar文件的形式提供。在这个例子的情况下,如果所有必需的类都放在压缩存档example.jar中,则可以使用以下嵌入代码:

< p >这里是:< applet  archive = “example.jar” code = “HelloWorld” height = “40” width = “200” > 这是HelloWorld.class运行的地方。 </ applet > </ p >

与其他客户端Web技术相比,Java小程序可能具有以下缺点

Java小程序依赖于Java运行时环境(JRE),这是一个相当复杂和重量级的软件包。

它通常还需要Web浏览器的插件。有些组织只允许管理员安装软件。因此,有些用户只能查看足够重要的小程序,以便与管理员联系以请求安装JRE和插件。如果applet需要比系统上可用的更新的JRE或特定的JRE,则第一次运行它的用户需要等待大型JRE下载完成。

大多数浏览器,特别是iOS或Android上的移动浏览器,根本不运行Java小程序。[39]与旧applet标签不同,object标签需要解决方法才能编写跨浏览器HTML文档。

屏幕阅读器没有可用的小程序内容。因此,小程序可能会损害具有特殊需求的用户访问网站。

与任何客户端脚本一样,安全限制可能会使不可信任的小程序难以达到预期的目标,甚至不可能达到预期的目标。但是,只需在JAVA JRE安装中编辑java.policy文件,就可以授予对本地文件系统或系统剪贴板的访问权限,或者允许访问除applet提供给浏览器的网络源以外的其他网络源。

转载于:https://www.cnblogs.com/jlp6057/p/9385083.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251094.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国内初创企业选择云计算服务器价格对比

假设我们是一家初创企业&#xff0c;现在要选择第一台服务器。业务还未确定&#xff0c;只知道是互联网业务 要求&#xff1a; 至少2核&#xff0c;否则多线程的软件都跑不了至少4G内存&#xff0c;这样可以运行数据库或者elasticsearch这种比较吃内存的东西。或者说&#xff0…

javascript --- 几个其他的跨域技术(图像Ping、JSONP、Comet)

在CORS(Cross-Origin Resource Sharing,跨域资源共享)出现以前,要实现跨域Ajax通信是很难的. 可以利用DOM中能够执行跨域请求的功能,来实现跨域通信: 浏览器到服务器的单向通信: 此项技术称为图像Ping,利用的是img.src的跨域事件 img.src只能通过侦听load和error事件来确定浏览…

ES5-拓展 箭头函数的this、this的优先级

让内部函数的this指向和父函数的this&#xff0c;可以显示改变this指向&#xff0c;也可以使用箭头函数 箭头代替了function关键字 箭头函数内部没有this指向&#xff0c;箭头函数的this是稳定引用父作用域的。因为它的存在就是要稳定this指向。 适用于普通函数的所有绑定规则…

java 实现压缩单个文件

先来实现一个简单的单文件压缩&#xff0c;主要是为了解一下压缩需要使用到的流。。 效果&#xff1a; 说明&#xff1a;压缩实现使用ZipOutputStream 代码&#xff1a; package com.gx.compress;import java.io.BufferedInputStream; import java.io.BufferedOutputStream; im…

jekins构建触发器详解

jenkins版本&#xff1a;2.89.2 1、触发远程构建 (例如,使用脚本)&#xff1a;通过一个网址的访问来触发构建&#xff0c;这样就不需要登录jenkins系统也能触发构建了。 示例地址&#xff1a; http://localhost:8848/job/FlashRegistration/build??token口令&cause书写构…

http --- 前端的缓存

前端的缓存分为: http缓存 和 浏览器缓存 http缓存: // 当客户端向服务器请求资源时,会先抵达浏览器缓存,如果浏览器有"要请求资源"的副本 // 就会从浏览器缓存中提取而不是从原始服务器中提取这个资源// 常见的http缓存,只能缓存get请求响应的资源,对于其他类型的响…

ES5-拓展 隐式数据类型转换

Boolean转换原则&#xff1a;非假即真 6种虚值 原始值转换为原始值 对象转换为原始值 Date()和new Date() new Date可以不写括号(new方式返回的一定是对象)&#xff0c;返回Date对象Date()返回函数执行&#xff0c;返回时间字符串 引用值转原始值 先找valueOf方法(一般…

Swagger的简单入门【转载】

一、Swagger简介 上一篇文章中我们介绍了Spring Boot对Restful的支持&#xff0c;这篇文章我们继续讨论这个话题&#xff0c;不过&#xff0c;我们这里不再讨论Restful API如何实现&#xff0c;而是讨论Restful API文档的维护问题。 在日常的工作中&#xff0c;我们往往需要给前…

visual studio code搭建本地服务器(node.js+express)

一、安装node.js&#xff08;常规软件安装流程&#xff0c;比较简单&#xff0c;不用赘述&#xff09; 二、安装express框架 1. 打开Windows命令提示符&#xff0c;输入&#xff1a; npm install express -g&#xff0c;等待&#xff0c;安装好如下所示&#xff1a; npm instal…

es6 --- 手写一个promise

一个promise实例: var getJSON function(url) {var promise new Promise(function(resolve, reject) {// XHR对象发现ajax请求var client new XMLHttpReqeust();client.open("GET", url);client.onreadystatechange handler;client.responseType "json&qu…

最大流模版 EK

EK算法基于增广路的思想,易于理解,但由于低效并不被经常使用 #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> #include <queue> using namespace std; const int MAXN10005,MAXM100005…

Restrictions查询用法

Restrictions查询用法 HQL运算符 QBC运算符 含义 Restrictions.eq() 等于equal <> Restrictions.ne() 不等于not equal > Restrictions.gt() 大于greater than > Restrictions.ge() 大于等于greater than or equal < Restrictions.lt() 小…

chrome调试

技术拓展直播课8 按chrome的官方文档 长按刷新 清除缓存&#xff08;不一定好使&#xff09; Ctrl f 查找类 console控制台见b站 bilibili source面板直接打断点 效果和debugger一样 单步调试 进入到函数的下一步 网速 no throttling 是否需要过滤 domcontentloaded d…

es6 --- promise和async/await的区别

首先需要了解async函数: async是Generator函数的语法糖: // 使用Generator依次读取两个文件 var fs require(fs); var readFile function (fileName) {return new Promise(function (resolve, reject) {fs.readFile(filename, function(error, data) {if (error) return re…

Ueditor百度编辑器中的 setContent()方法的使用

百度编辑器Ueditor所提供的setContent()方法作用是&#xff1a;设置或者改变编辑器里面的文字内容或html内容 函数说明&#xff1a;setContent(string,boolean); 参数string 是需要设置到编辑器里面的内容&#xff0c;可以含有HTML代码&#xff0c;最后插入到编辑器中的内容是经…

小程序UI

从input组件说起 <input maxlength"10" placeholder"最大输入长度10" /> <div id"wrapper" disabled$"{{disabled}}">\n <p id"placeholder" class$"{{_getPlaceholderClass(placeholderClass)}}"…

61-1 认识webpack

认识webpack 面向过程开发的不便引入外部js执行顺序面向对象开发 加载多个文件耗时更多 增加了http请求 引入过多js变量来源不明 优化 使用前先import 但使用import语法需要借助工具webpack翻译为浏览器可以解析的语法安装node自动携带npmwebpack若没有全局安装 需要使用npx…

css font简写

一、字体属性主要包括下面几个 font-family&#xff0c;font-style&#xff0c;font-variant&#xff0c;font-weight&#xff0c;font-size&#xff0c;fontfont-family&#xff08;字体族&#xff09;: “Arial”、“Times New Roman”、“宋体”、“黑体”等;font-style&…

javascript --- 原生的拖拽功能实现

准备一个方块: <style>.drag{background-color:#aaf;position:absolute;} </style> <div class"drag" style"width:100px;height:100px;top:0;left:0"></div>监听鼠标的按住事件: let dragDiv document.getElementsByClassName…

web安全学习-验证机制存在的问题

验证机制是应用程序防御恶意攻击的中心机制。它处于防御未授权的最前沿&#xff0c;如果用户能够突破那些防御&#xff0c;他们通常能够控制应用程序的全部功能&#xff0c;自由访问其中的数据。缺乏安全稳定的验证机制&#xff0c;其他核心安全机制&#xff08;如回话管理和访…