Ir al contenido
Menú principal
Menú principal
mover a la barra lateral
ocultar
Navegación
Página principal
Cambios recientes
Página aleatoria
Ayuda sobre MediaWiki
Buscar
Buscar
español
Apariencia
Crear una cuenta
Acceder
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Edición de «
Applet Java
»
Página
Discusión
español
Leer
Editar
Editar código
Ver historial
Herramientas
Herramientas
mover a la barra lateral
ocultar
Acciones
Leer
Editar
Editar código
Ver historial
General
Lo que enlaza aquí
Cambios relacionados
Información de la página
Apariencia
mover a la barra lateral
ocultar
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
{{Distinguir|Java|otro=Jabba el Hutt}} {{Problemas artículo|referencias adicionales|formato de referencias|t=20250410}} {{Ficha de software | nombre = Applet | logo = | captura = Java applet.png | pie = | autor = | desarrollador = [[Sun Microsystems]] | última_versión = | fecha_última_versión = | última_versión_prueba = | fecha_última_versión_prueba = | lenguaje_programación = [[Java (lenguaje de programación)|Java]] | sistema_operativo = [[Máquina virtual Java]] | género = | licencia = | sitio_web = https://java.sun.com/applets | idiomas = | español = }} Un '''''applet'' Java''' es un [[applet]] escrito en el [[Java (lenguaje de programación)|lenguaje de programación Java]]. Los applets de Java pueden ejecutarse en un [[navegador web]] utilizando la [[Java Virtual Machine]] (JVM), o en el AppletViewer de [[Sun Microsystems|Sun]], applet ya no serán compatibles con Java 9 (2017).<ref name=java9></ref> Entre sus características podemos mencionar un esquema de [[seguridad informática|seguridad]] que permite que los ''[[applet]]s'' que se ejecutan en el equipo no tengan acceso a partes sensibles (por ej. no pueden escribir archivos), a menos que uno mismo le dé los permisos necesarios en el sistema; la desventaja de este enfoque es que la entrega de permisos es engorrosa para el usuario común, lo cual juega en contra de uno de los objetivos de los ''Java applets'': proporcionar una forma fácil de ejecutar aplicaciones desde el navegador web. En Java, un ''applet'' es un programa que puede incrustarse en un [[Hypertext Markup Language|documento HTML]], es decir en una [[página web]]. Cuando un navegador carga una página web que contiene un ''applet'', este se descarga en el navegador web y comienza a ejecutarse. Esto permite crear programas que cualquier usuario puede ejecutar con tan solo cargar la página web en su navegador. El navegador que carga y ejecuta el ''applet'' se conoce en términos genéricos como el "contenedor" de los ''applets''. El [[kit de desarrollo de software]] para Java Standard Edition 7 (1.7.1 --Versión más actual, puesta en marcha el 18 de octubre de 2011) incluye un contenedor de ''applets'', llamado appletviewer, para probar los ''applets'' antes de incrustarlos en una página web. == Ventajas == Los ''applets'' de Java suelen tener las siguientes ventajas: * Son [[multiplataforma]] (funcionan en Linux, Windows, OS X, y en cualquier [[sistema operativo]] para el cual exista una Java Virtual Machine). * El mismo ''applet'' puede trabajar en "todas" las versiones de Java, y no solo en la última versión del [[Complemento (informática)|plugin]]. Sin embargo, si un ''applet'' requiere una versión posterior del [[Java Runtime Environment]] (JRE), el cliente se verá obligado a esperar durante la descarga de la nueva JRE. * Es compatible con la mayoría de los [[Navegador web|navegadores web]]. * Puede ser almacenado en la [[memoria caché]] de la mayoría de los navegadores web, de modo que se cargará rápidamente cuando se vuelva a cargar la página web, aunque puede quedar atascado en la caché, causando problemas cuando se publican nuevas versiones. * Puede tener acceso completo a la máquina en la que se está ejecutando, si el usuario lo permite. * Puede ejecutarse a velocidades comparables a las de otros lenguajes compilados, como [[C++]] (dependiendo de la versión de la JVM). * Puede trasladar el trabajo del [[Servidor web|servidor]] al cliente, haciendo una solución web más escalable tomando en cuenta el número de usuarios o clientes.{{cr}} == Desventajas == Los ''applets'' de Java tienen las siguientes desventajas: * Requiere el ''plugin'' de Java, sin embargo los navegadores [[Google Chrome|Chrome]] y [[Microsoft Edge|Edge]] no soportan plugins y [[Mozilla Firefox|Firefox]] dejará de soportarlos próximamente. En ese sentido también [[Oracle]] anunció que abandonará el desarrollo del plugin de Java a partir de la salida de Java 9.<ref name="java9">{{cita web|título=Oracle deprecates the Java browser plugin, prepares for its demise|url=http://arstechnica.com/information-technology/2016/01/oracle-deprecates-the-java-browser-plugin-prepares-for-its-demise/|autor=Peter Bright|fecha=27 de enero de 2016|website=Ars Technica|fechaacceso=28 de enero de 2016}}</ref> * No puede iniciar la ejecución hasta que la JVM esté en funcionamiento, y esto puede tomar tiempo la primera vez que se ejecuta un ''applet''. * Si no está firmado como confiable, tiene un acceso limitado al sistema del usuario - en particular no tiene acceso directo al [[Unidad de disco duro|disco duro]] del cliente o al [[portapapeles]]. * Algunas organizaciones solo permiten la [[instalación de software]] a los administradores. Como resultado, muchos usuarios (sin privilegios para instalar el ''plugin'' en su navegador) no pueden ver los ''applets''. * Un ''applet'' podría exigir una versión específica del JRE. * Puede tener vulnerabilidades que permitan ejecutar código malicioso.<ref>https://www.abc.es/tecnologia/20130115/abci-java-desactivar-problemas-201301151402.html</ref> == Diferencias entre una aplicación autónoma y un ''applet'' == Existen diferencias entre un programa autónomo y un ''applet'': * Restricciones de seguridad: los ''applets'' son considerados ''código de poca confianza''<ref>{{cita web|url=http://java.sun.com/docs/books/tutorial/deployment/applet/security_practical.html|título=Artículo Security Restrictions sobre Applets de Sun Microsystem|fechaacceso=15 de enero de 2009|idioma=inglés|urlarchivo=https://web.archive.org/web/20090210003110/http://java.sun.com/docs/books/tutorial/deployment/applet/security_practical.html|fechaarchivo=10 de febrero de 2009}}</ref> (a excepción de que lleven una [[firma digital]]) ya que son compartidos por todos los usuarios de Internet. Por ejemplo, no se permite el acceso a [[Archivo (informática)|ficheros]] locales ni conectarse a un servidor distinto al que está alojado el ''applet''. * Necesitan un navegador para ser visualizados, o un visor de ''applets'' como appletviewer. * No tienen un método principal. == Creación y ejecución de un ''applet'' == === Crear un ''applet'' === Para crear un ''applet'' es necesario escribir un descendiente de la clase Applet del paquete <tt>java.applet.*</tt>; <syntaxhighlight lang="java"> import java.applet.*; public class MiApplet extends Applet { //Cuerpo del ''applet''. } </syntaxhighlight> El código anterior declara una nueva clase MiApplet que hereda todas las capacidades de la clase Applet de Java. El resultado es un fichero MiApplet.java. Una vez creada la clase que compone el ''applet'', se escribe el resto del código y después se compila, obteniendo el fichero MiApplet.class <syntaxhighlight lang="java"> import java.applet.*; import java.awt.*; import java.util.*; import java.text.DateFormat; public class MiApplet extends Applet implements Runnable { private Thread hilo = null; private Font fuente; private String horaActual = "00:00:00"; public void init() { fuente = new Font("Verdana", Font.BOLD, 24); } public void start() { if (hilo == null) { hilo = new Thread(this, "Reloj"); hilo.start(); } } public void run() { Thread hiloActual = Thread.currentThread(); while (hilo == hiloActual) { //obtener la hora actual Calendar cal = Calendar.getInstance(); Date hora = cal.getTime(); DateFormat df = DateFormat.getTimeInstance(); horaActual = df.format(hora); repaint(); try { Thread.sleep(1000); } catch (InterruptedException e){} } } public void paint(Graphics g) { //Dibujar un rectángulo alrededor del contenedor g.draw3DRect(1, 1, getSize().width-3, getSize().height-3, false); //Establecer la Fuente g.setFont(fuente); //mostrar la Hora g.drawString(horaActual,14,40); } public void stop() { hilo = null; } } </syntaxhighlight> Si se utiliza la [[Biblioteca (informática)|biblioteca]] gráfica [[Swing (biblioteca gráfica)|Swing]], se puede utilizar la clase JApplet de ''javax.swing'' en vez de Applet: <syntaxhighlight lang="java"> import javax.swing.*; public class MiApplet extends JApplet { //Cuerpo del ''applet''. } </syntaxhighlight> === Ejecución === Para insertar el ''applet'' en una página web, se usa la siguiente estructura: <syntaxhighlight lang="text"> <etiqueta parametro = "valor"></etiqueta> </syntaxhighlight> ==== Etiqueta <applet> ==== Siguiendo la estructura anterior, un ejemplo de HTML para ejecutar el ''applet'' es: <syntaxhighlight lang="html"> <applet code="MiApplet.class" width="370" height="270"></applet> </syntaxhighlight> Pudiéndose usar los siguientes atributos: {| class="wikitable" !Atributo !Descripción !Ejemplo |- |<code>codebase</code> |Dirección desde donde se puede descargar la clase de Java que va a cargar el applet, el [[URL]] de la clase. Si no se especifica, será la ubicación actual de la página HTML. |<code>codebase="http://www.pagina.com/applet/"</code> |- |<code>code</code> |Nombre de la clase que se quiere cargar en el applet. La dirección donde se encuentra es relativa al <code>codebase</code>. Si no se ha especificado <code>codebase</code>, es la misma carpeta donde está la página HTML que carga el applet. |<code>code="NombreClase.class"</code> |- |<code>width</code> |Tamaño en píxels de la anchura. |<code>width=100</code> |- |<code>height</code> |Tamaño en píxels de la altura. |<code>height=100</code> |- |<code>alt</code> |Texto que se muestra donde debería cargarse el applet si el navegador no permite su carga. |<code>alt="Su navegador no permite cargar este Applet"</code> |- |<code>name</code> |Establece un nombre único para el applet. |<code>name="MiApplet"</code> |- |<code>archive</code> |Es un listado de clases separados por comas que deben ser cargados en la caché del usuario local antes de poder ejecutarse. |<code>archive="Clase1.class, Clase2.class, Clase3.class"</code> |- |<code>hspace</code> |Establece los márgenes laterales en píxels. |<code>hspace=25</code> |- |<code>vspace</code> |Establece el margen superior e inferior en píxels. |<code>vspace=25</code> |- |<code>align</code> |Alineación respecto a otros elementos.<br />Valores: <code>left</code>, <code>center</code>, <code>right</code>, <code>top</code>, <code>middle</code> y <code>bottom</code> |<code>align="center"</code> |- |<code>mayscript</code> |Permite especificar si el applet puede tener acceso al código [[JavaScript]] |No tiene valor asociado. Si aparece se aplica. |} Dentro de la etiqueta <code><applet></code> puede aparecer la etiqueta <code><param></code> que contiene pares clave/valor, que son leídos por el programa Java, tantas veces como se quiera. ==== Etiqueta <object> ==== A partir de la versión 4.0 de [[HTML]] se consideró obsoleto el uso de la etiqueta <code><applet></code>, siendo sustituida por <code><object></code>. Esta etiqueta es compatible con los navegadores [[Microsoft Internet Explorer]], [[Netscape Navigator|Netscape]] 6 (y versiones superiores) y [[Mozilla Firefox]]. Comparte muchos de los atributos con <code><applet></code>, siendo los únicos para esta etiqueta: {| class="wikitable" !Atributo !Descripción !Ejemplo |- |<code>classid</code> |Identificador del tipo de objeto. |Para Java es: <code>classid="clsid:CAFEEFAC-0014-0001-0000-ABCDEFFEDCBA"</code> |- |<code>codebase</code> |URL que apunta a un fichero <code>.cab</code> en la red del plugin necesario para poder ejecutar el contenido. |<code>codebase="Dirección_del_instalador_de_la_Máquina_Virtual_Java"</code> |- |<code>type</code> |Tipo de archivo que va a reproducirse mediante el objeto. |<code><param name="type" value="application/x-java-applet;jpi-version=1.5.0"></code> |} == Ciclo de vida == Cuando un applet se carga, se llaman en este orden a los siguientes métodos; # <code>init</code>: suele contener instrucciones para inicializar el ''applet''. # <code>start</code>: como <code>init</code>, se suele usar para inicializar, pero con la diferencia de que este método también se llama cuando se reinicia ''el applet''. # <code>paint</code>: se encarga de mostrar el contenido del ''applet''. Se ejecuta cada vez que se tenga que redibujar. Para terminar o pausar la ejecución se llama a los siguientes métodos: * <code>stop</code>: suspende la ejecución del programa. Se llama cuando el ''applet'' se vuelve temporalmente invisible. * <code>destroy</code>: cuando no se va a necesitar más el ''applet''. Se usa para liberar recursos.{{cr}} == Véase también == * [[Java Servlet]] * [[Java Web Start]] * [[ActiveX|ActiveX controls]] * [[Adobe Flash]] == Referencias == {{listaref}} == Bibliografía == * {{cita libro|apellidos=Deitel|nombre=Harvey, Paul & Asociados|título=Como Programar en Java|año=2004|editorial=México: PEARSON EDUCACION|id=970-26-0518-0}} == Enlaces externos == * [https://java.sun.com/applets Sitio web oficial de Sun Microsystems, desarrolladora de Java] * [https://java.sun.com/applets/jdk/1.4/index.html Demostración de Sun Microsystems] (JDK 1.4) * [https://www.buscaminegocio.com/cursos-de-java/applets-java.html Applets de Java] {{Control de autoridades}} [[Categoría:Aplicaciones informáticas]] [[Categoría:Tecnologías Java EE]] [[Categoría:Desarrollo web]]
Resumen:
Al guardar los cambios aceptas los
términos de uso
y liberas de forma irrevocable tu contribución conforme a los términos de las licencias
licencia CC BY-SA 4.0
y
GFDL
. Aceptas igualmente que un hipervínculo o URL es atribución suficiente conforme a la licencia Creative Commons.
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Buscar
Buscar
Edición de «
Applet Java
»
Añadir idiomas
Añadir tema