Camino Libre
martes, 07 de septiembre de 2010
Welcome! Guest
Inicio arrow Manuales arrow JAVA arrow JAVA Web arrow 02.- Creando un Applet
02.- Creando un Applet PDF Imprimir E-Mail
Escrito por Administrator   
jueves, 25 de enero de 2007

Creando un applet sencillo.

Los applets son GUI's hechas en java, que tienen la particularidad de poder se incluidas en una página web, mediante la etiqueta applet de html, lo que abre la posibilidad de tener complejas aplicaciones en una página web. Debido a que los applets son programas hechos en java, son independientes de la plataforma y del navegador, con el único requisito de que en el lado del cliente se cuente con la JVM correspondiente.

Sin embargo, debido al esquema de seguridad de java, las aplicaciones de este tipo, están imposibilitadas para realizar operaciones de entrada/salida en el lado del cliente. Es decir que en principio no pueden crearse conexiones o leer y escribir en archivos.

Aun así existe una forma de poder realizar este tipo de acciones, a travéz de la creación de applets, firmados, lo cuál solo se comentará por el momento y se remite al lector a la documentación correspondiente. Para java un applet es un contenedor por lo tanto existe una clase Applet contenida en el paquete java.applet, que nos representa a este tipo de contenedores, que a su vez es una subclase de la clase Panel de AWT, por lo que se trabajará preferentemente con la clase JApplet de swing, heredada de la citada clase Applet, pero nos será útil por los métodos definidos en ella.

Para crear un applet, se siguen la misma metodología de las GUI's, con las siguientes diferencias. El método invocado por el browser (navegador) para informar que el applet ha sido cargado en el sistema es el método init(), definido en la clase Applet. Es en este método en el cual se comenzará con la ejecución del programa. No tiene mucho sentido definir un método constructor, pues como ya se comentó al cargar el applet, el navegador llama al método init().

  • Para crear una applet normalmente será necesario importar al menos las bibliotecas java.awt.* y la java.applet.*
  • La clase que represente a la applet se ha de declarar como una subclase de la clase Applet, para poder sobreescribir los métodos de la clase Applet
  • Siempre conviene sobreescribir al menos el método paint() que será llamado por los navegadores que soporten applets para mostrarles por pantalla.

Vamos a construir una applet denominada AppletDiagonal que simplemente dibuje una línea diagonal. Un posible código para esta applet sería:

Primer ejemplo de Applet
  1. import java.awt.*;
  2.  
  3. import java.applet.*;
  4.  
  5. public class Diagonal extends Applet {
  6.  
  7. public void paint(Graphics g) {
  8.  
  9. g.setColor( Color.red );
  10.  
  11. g.drawLine(0, 0, getWidth(), getHeight() );
  12.  
  13. }
  14.  
  15. }
  16.  
 

Expliquemos como funciona este código:

  1. El método paint() recibe un objeto de la clase Graphics. La clase Graphics, incluida en el AWT, contiene métodos para mostrar varios tipos de gráficos.
  2. Mediante el método setColor() de la clase Graphics se establece el color de primer plano a rojo, que es uno de los colores predefinidos de la clase Color.
  3. Por último, mediante drawLine() se dibuja una línea dadas las coordenadas de su esquina superior izquierda y de la inferior derecha. En este caso se indican la esquina superior izquierda de la applet mediante las coordenadas (0,0), y la esquina inferior derecha se obtiene mediante dos métodos de la clase Dimension ( getWidth(), getHeight() ).

Para ejecutar la applet, una vez compilado el fichero, se introduce la llamada a la applet en una página Web (por ejemplo AppletDiagonal.htm), introduciendo entre su código HTML lo siguiente:

Applet insertado en un HTML
  1.  
  2. <body bgcolor="#ccc">
  3. <applet code="Diagonal.class" width=200 height=200>
  4. </applet>
  5. </center>
  6. </body>
  7. </html>
 

Prueba este ejemplo.

 

Veamos otro ejemplo más complicado:

Otro ejemplo de applet [AppletBasico]
  1. import java.awt.*;
  2. import javax.swing.*;
  3. /**
  4. * Este ejemplo genera un applet básico heredado
  5. * de la clase JApplet
  6. * @author adresc
  7. *
  8. */
  9. public class AppletBasico extends JApplet {
  10. private JPanel jContentPane = null;
  11. /*
  12. *Se sobre escribe el método init() para
  13. *inicializar el applet
  14. *
  15. */
  16. public void init() {
  17. /*
  18. * Se define un color de fondo y tamaño
  19. * como se hace para otros contenedores
  20. */
  21. this.setSize(300, 200);
  22. this.setBackground(Color.ORANGE);
  23. /*
  24. * Se determina al JPanel como contenedor
  25. */
  26. this.setContentPane(getJContentPane());
  27. repaint();
  28. }
  29. /*
  30. * Se se inicializa el JPanel
  31. */
  32. private JPanel getJContentPane() {
  33. if (jContentPane == null) {
  34. jContentPane = new JPanel();
  35. jContentPane.setLayout(new GridLayout(5,2));
  36. }
  37. return jContentPane;
  38. }
  39. /*
  40. * Se sobreescribe el metodo paint, para que
  41. * dibuje algunos gráficos en el applet
  42. *
  43. */
  44. public void paint(Graphics g) {
  45. Font f=new Font("Arial",Font.ITALIC,30);
  46. for(int i=0;i<150;i+=3) {
  47. if((i%2)!=0)
  48. g.setColor(Color.GREEN);
  49. else
  50. g.setColor(Color.BLUE);
  51. g.drawRect(150, 50, i+10, i);
  52. }
  53. g.setFont(f);
  54. g.drawString("Applet Basico", 10, 30);
  55. }
  56. }
 

Prueba este ejemplo.

 

Un ejemplo más, en este caso usamos Swing:

Usando Swing
  1. import java.awt.*;
  2. import javax.swing.*;
  3.  
  4. public class JAppletEjemplo extends JApplet {
  5. public void init() {
  6. setNativeLookAndFeel();
  7. Container content = getContentPane();
  8. content.setBackground(Color.white);
  9. content.setLayout(new FlowLayout());
  10. content.add(new JButton("Button 1"));
  11. content.add(new JButton("Button 2"));
  12. content.add(new JButton("Button 3"));
  13. content.add(new JTextField("Campo de texto"));
  14. }
  15. /** Tell system to use native look and feel, as in previous
  16. * releases. Metal (Java) LAF is the default otherwise.
  17. */
  18.  
  19. public static void setNativeLookAndFeel() {
  20. try {
  21. UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
  22. } catch(Exception e) {
  23. System.out.println("Error setting native LAF: " + e);
  24. }
  25. }
  26. }
 

 Prueba este ejemplo.

Modificado el ( viernes, 14 de diciembre de 2007 )
 
< Anterior   Siguiente >

Otros sitios de computación

Sherekan
Planeta Moderno
El Andariego