Conceptos básicos del subprograma Java

Entendamos primero cuántos paquetes admite GUI: 

  1. AWT (kit de herramientas de ventana abstracta)
  2. Ritmo

Retroceso de la creación de una aplicación GUI:
Java se lanzó el 23 de enero de 1996 (JDK 1.0) y en ese momento solo admitía la aplicación CUI (interfaz de usuario de caracteres). Pero en 1996 se prefirió VB (Visual Basic) de Microsoft para la programación de GUI. Entonces, los desarrolladores de Java con prisa (es decir, dentro de los 7 días) han brindado soporte para GUI desde el sistema operativo (OS). Ahora, los componentes como el botón, etc. dependían de la plataforma (es decir, en cada plataforma habrá un botón de diferente tamaño y forma). Pero hicieron la intersección de dichos componentes de todas las plataformas y dieron una pequeña biblioteca que contiene estas intersecciones y está disponible en la tecnología AWT (Abstract Window Toolkit) pero no tiene funciones avanzadas como cuadro de diálogo, etc.

Ahora, para ejecutar Applet, Java necesita un navegador y en ese momento solo había «Internet Explorer» de Microsoft, pero Microsoft cree en el monopolio. Entonces, «SUN Micro-System» (la empresa que desarrolló Java) contrató a otra empresa conocida como «Netscape» (que desarrolló Java Script) y ahora la empresa «Netscape» también se conoce como «Mozilla Firefox», que todos sabemos es un navegador. Ahora, estas dos empresas han desarrollado una tecnología llamada «SWING» y el beneficio es que los componentes SWING son producidos por el mismo Java. Por lo tanto, ahora es independiente de la plataforma y también se han agregado algunas características adicionales que no estaban en la tecnología AWT. Entonces podemos decir que SWING es mucho más avanzado en comparación con la tecnología AWT.

¿Qué es Applet?  
Un applet es un programa Java que se puede incrustar en una página web. Se ejecuta dentro del navegador web y funciona en el lado del cliente. Un subprograma está incrustado en una página HTML utilizando la etiqueta APPLET u OBJECT y alojado en un servidor web.
Los applets se utilizan para hacer que el sitio web sea más dinámico y entretenido.

Puntos importantes : 

  1. Todos los applets son subclases (directa o indirectamente) de la clase java.applet.Applet .
  2. Los applets no son programas independientes. En su lugar, se ejecutan en un navegador web o en un visor de subprogramas. JDK proporciona una herramienta de visor de subprogramas estándar llamada visor de subprogramas.
  3. En general, la ejecución de un applet no comienza en el método main().
  4. System.out.println() no realiza la salida de una ventana de applet . Más bien, se maneja con varios métodos AWT, como drawString() .

Ciclo de vida de un applet: 

Es importante comprender el orden en que se llaman los diversos métodos que se muestran en la imagen de arriba. Cuando comienza un applet, se llaman los siguientes métodos, en esta secuencia: 

  1. en eso( )
  2. comienzo( )
  3. pintar( )

Cuando se termina un applet, tiene lugar la siguiente secuencia de llamadas a métodos: 

  1. deténgase( )
  2. destruir( )

Veamos más de cerca estos métodos. 

1. init( ) : El método init( ) es el primer método que se llamará. Aquí es donde debe inicializar las variables. Este método se llama solo una vez durante el tiempo de ejecución de su applet.

2. start( ) : El método start( ) se llama después de init() . También se llama para reiniciar un applet después de que se haya detenido. Tenga en cuenta que init() se llama una vez, es decir, la primera vez que se carga un subprograma, mientras que start() se llama cada vez que se muestra en pantalla el documento HTML de un subprograma. Por lo tanto, si un usuario abandona una página web y regresa, el applet reanuda la ejecución en start( ) .

3. paint( ) : El método paint( ) se llama cada vez que se debe volver a dibujar la salida de un subprograma basado en AWT. Esta situación puede ocurrir por varias razones. Por ejemplo, la ventana en la que se ejecuta el subprograma puede ser sobrescrita por otra ventana y luego descubierta. O la ventana del applet puede minimizarse y luego restaurarse. 
paint() también se llama cuando el applet comienza a ejecutarse. Cualquiera que sea la causa, cada vez que el applet debe volver a dibujar su salida, se llama a paint()
El método paint( ) tiene un parámetro de tipo Gráficos. Este parámetro contendrá el contexto de gráficos, que describe el entorno de gráficos en el que se ejecuta el subprograma. Este contexto se utiliza siempre que se requiere una salida al subprograma. 
Nota: Este es el único método entre todos los métodos mencionados anteriormente, que está parametrizado. Su prototipo es 
pintura vacía pública (Gráficos g) 
donde g es una referencia de objeto de clase Gráfico. 

Ahora surge la pregunta:

P. En el prototipo del método paint(), hemos creado una referencia de objeto sin crear su objeto. Pero, ¿cómo es posible crear una referencia de objeto sin crear su objeto?

Respuesta Siempre que pasemos la referencia del objeto en los argumentos, el objeto será proporcionado por su propio llamador. En este caso, la persona que llama al método paint() es el navegador, por lo que proporcionará un objeto. Lo mismo sucede cuando creamos un programa muy básico en programas Java normales. Por ejemplo:

public static void main(String []args){}

Aquí hemos creado una referencia de objeto sin crear su objeto, pero aún se ejecuta porque es quien llama, es decir, JVM le proporcionará un objeto.

4. stop( ) : el método stop( ) se llama cuando un navegador web abandona el documento HTML que contiene el subprograma, por ejemplo, cuando va a otra página. Cuando se llama a stop() , es probable que el subprograma se esté ejecutando. Debería usar stop() para suspender subprocesos que no necesitan ejecutarse cuando el subprograma no está visible. Puede reiniciarlos cuando se llama a start() si el usuario regresa a la página.

5. destroy( ) : El método destroy( ) se llama cuando el entorno determina que su applet debe eliminarse por completo de la memoria. En este punto, debe liberar cualquier recurso que pueda estar usando el applet. El método stop() siempre se llama antes de destroy() .

Creando el applet Hello World: 
Comencemos con el applet 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);
    }
     
}

Explicación: 

  1. El programa Java anterior comienza con dos declaraciones de importación. La primera declaración de importación importa la clase Applet del paquete de applet. Cada applet basado en AWT (Abstract Window Toolkit) que cree debe ser una subclase (directa o indirectamente) de la clase Applet. La segunda instrucción importa la clase Graphics del paquete AWT.
  2. La siguiente línea del programa declara la clase HelloWorld. Esta clase debe declararse como pública porque se accederá a ella mediante un código que está fuera del programa. Dentro de HelloWorld, se declara paint() . Este método está definido por el AWT y debe ser anulado por el subprograma.
  3. Dentro de paint( ) hay una llamada a drawString( ) , que es miembro de la clase Graphics . Este método genera una string que comienza en la ubicación X,Y especificada. Tiene la siguiente forma general:
void drawString(String message, int x, int y)

Aquí, el mensaje es la string de salida que comienza en x,y. En una ventana de Java, la esquina superior izquierda es la ubicación 0,0. La llamada a drawString( ) en el subprograma hace que se muestre el mensaje “Hello World” comenzando en la ubicación 20,20.

Note que el applet no tiene un método main() . A diferencia de los programas de Java, los applets no comienzan a ejecutarse en main() . De hecho, la mayoría de los applets ni siquiera tienen un método main() . En cambio, un subprograma comienza a ejecutarse cuando el nombre de su clase se pasa a un visor de subprogramas oa un navegador de red.

Ejecución del subprograma HelloWorld:
después de ingresar el código fuente de HelloWorld.java, compile de la misma manera que ha estado compilando programas java (usando el comando javac ). Sin embargo, ejecutar HelloWorld con el comando java generará un error porque no es una aplicación. 

java HelloWorld

Error: Main method not found in class HelloWorld, 
please define the main method as:
   public static void main(String[] args)

Hay dos formas estándar en las que puede ejecutar un applet: 

  1. Ejecutar el applet dentro de un navegador web compatible con Java.
  2. Usando un visor de applets, como la herramienta estándar, applet-viewer. Un visor de subprogramas ejecuta su subprograma en una ventana. Esta es generalmente la forma más rápida y fácil de probar su applet.

Cada uno de estos métodos se describe a continuación.

1. Uso de un navegador web habilitado para Java: para ejecutar un subprograma en un navegador web, debemos escribir un archivo de texto HTML corto que contenga una etiqueta que cargue el subprograma. Podemos usar la etiqueta APPLET u OBJECT para este propósito. Usando APPLET, aquí está el archivo HTML que ejecuta HelloWorld:

<applet code="HelloWorld" width=200 height=60>
</applet>

Las declaraciones de ancho y alto especifican las dimensiones del área de visualización utilizada por el subprograma. La etiqueta APPLET contiene varias otras opciones. Después de crear este archivo html, puede usarlo para ejecutar el subprograma.

NOTA: Chrome y Firefox ya no son compatibles con NPAPI (tecnología requerida para los applets de Java). Consulte aquí

2. Usando appletviewer: Esta es la forma más fácil de ejecutar un applet. Para ejecutar HelloWorld con un visor de subprogramas, también puede ejecutar el archivo HTML que se mostró anteriormente. Por ejemplo, si el archivo HTML anterior se guarda con 
RunHelloWorld.html, la siguiente línea de comando ejecutará HelloWorld: 

appletviewer RunHelloWorld.html

HelloWorld Applet

3. Appletviewer con archivo fuente Java: si incluye un comentario al principio de su archivo de código fuente Java que contiene la etiqueta APPLET, entonces su código se documenta con un prototipo de las declaraciones HTML necesarias y puede ejecutar su applet compilado simplemente con iniciando el visor de applets con su archivo de código fuente de Java. Si usa este método, el archivo fuente de HelloWorld se ve así: 

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);
    }
     
}

Con este enfoque, primero compile el archivo HelloWorld.java y luego simplemente ejecute el siguiente comando para ejecutar el applet: 

appletviewer HelloWorld

Para probar el punto mencionado anteriormente, es decir, la pintura se llama una y otra vez.

Para probar esto, primero estudiemos qué es la “Barra de estado” en Applet: La
“Barra de estado” está disponible en la ventana inferior izquierda de un applet. Para usar la barra de estado y escribir algo en ella, usamos el método showStatus() cuyo prototipo es
public void showStatus(String)
Por defecto, la barra de estado muestra «Applet iniciado».
Por defecto, el color de fondo es blanco.

Para probar que el método paint() se llama una y otra vez, aquí está el código:

Nota: Este código es con respecto a 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.
}
}

Nota:- Aquí podemos ver que si la pantalla está maximizada o minimizada obtendremos una hora actualizada. Esto muestra que paint() se llama una y otra vez.

Características de los Applets sobre HTML

  • Visualización de páginas web dinámicas de una aplicación web.
  • Reproducción de archivos de sonido.
  • Visualización de documentos
  • Reproducir animaciones

Restricciones impuestas a los applets de Java

Por motivos de seguridad, se imponen las siguientes restricciones a los subprogramas de Java:

  1. Un subprograma no puede cargar bibliotecas ni definir métodos nativos.
  2. Normalmente, un subprograma no puede leer ni escribir archivos en el host de ejecución.
  3. Un applet no puede leer ciertas propiedades del sistema.
  4. Un applet no puede establecer conexiones de red excepto con el host del que procede.
  5. Un subprograma no puede iniciar ningún programa en el host que lo está ejecutando.

Este artículo es aportado por Krishna Bhatia y Pavan Gopal Rayapati y mejorado por Surya Priy . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *