Applet que abre una ventana con menus

package masterdavidjavabasico;

import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;

/*
<APPLET
    CODE=menu.class
    WIDTH=200
    HEIGHT=200 >
</APPLET>
*/

public class menu extends Applet implements ActionListener
{
    Button b1;
    frame menuWindow;

    public void init()
    {
        b1 = new Button("Visualizar el menu de la ventana");
        add(b1);
        b1.addActionListener(this);

        menuWindow = new frame("Menus");
        menuWindow.setSize(200, 200);
    }

    public void actionPerformed(ActionEvent event)
    {
        if(event.getSource() == b1){
            menuWindow.setVisible(true);
        }
    }
}

class frame extends Frame implements ActionListener
{
    Menu menu;
    MenuBar menubar;
    MenuItem menuitem1, menuitem2, menuitem3;

    Label label;

    frame(String title)
    {
        super(title);
        label = new Label("Hola desde Java!");
        setLayout(new GridLayout(1, 1));
        add(label);
        menubar = new MenuBar();

        menu = new Menu("Archivo");

        menuitem1 = new MenuItem("Elemento 1");
        menu.add(menuitem1);
        menuitem1.addActionListener(this);

        menuitem2 = new MenuItem("Elemento 2");
        menu.add(menuitem2);
        menuitem2.addActionListener(this);

        menuitem3 = new MenuItem("Elemento 3");
        menu.add(menuitem3);
        menuitem3.addActionListener(this);

        menubar.add(menu);

        setMenuBar(menubar);

         addWindowListener(new WindowAdapter() {public void
              windowClosing(WindowEvent e) {setVisible(false);}});
    }

    public void actionPerformed(ActionEvent event)
    {
        if(event.getSource() == menuitem1){
            label.setText("Eligio el elemento 1");
        } else if(event.getSource() == menuitem2){
            label.setText("Eligio el elemento 2");
        } else if(event.getSource() == menuitem3){
            label.setText("Eligio el elemento 3");
        }
    }
}

Abrir una ventana desde otra ventana

Como se puede ver, la ventana
aparece con un borde mínimo y la etiqueta de control que visualiza un mensaje.

package masterdavidjavabasico;

import java.awt.*;
import java.awt.event.*;


public class ventana 
{
    public static void main(String [] args)
    {
       AppFrame f = new AppFrame();

       f.setSize(200, 200);

       f.addWindowListener(new WindowAdapter() { public void
           windowClosing(WindowEvent e) {System.exit(0);}});

       f.show();
    }
}

class AppFrame extends Frame implements ActionListener
{
    Button b1, b2;
    labelWindow window;

    AppFrame()
    {
        setLayout(new FlowLayout());
        b1 = new Button("Visualizar la ventana");
        add(b1);
        b1.addActionListener(this);

        b2 = new Button("Ocultar la ventana");
        add(b2);
        b2.addActionListener(this);

        window = new labelWindow(this);
        window.setSize(300, 200);
        window.setLocation(300, 200);
    }

    public void actionPerformed(ActionEvent event)
    {
        if(event.getSource() == b1){
            window.setVisible(true);
        }
        if(event.getSource() == b2){
            window.setVisible(false);
        }
    }
}

class labelWindow extends Window {
    Label label;

    labelWindow(AppFrame af){
        super(af);
        setLayout(new FlowLayout());
        label = new Label("Hola desde Java!");
        add(label);
    }

    public void paint (Graphics g)
    {
        int width = getSize().width;
        int height = getSize().height;

        g.drawRect(0, 0, --width, --height);
    }
}

Gestionar eventos de ventana

se puede ver, la ventana
frame gestiona eventos MouseListener, visualizando mensajes.

package masterdavidjavabasico;

import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;

/*
<APPLET
    CODE=frame.class
    WIDTH=300
    HEIGHT=200 >
</APPLET>
*/

public class frame extends Applet implements ActionListener {

    Button b1, b2;
    labelFrame window;

    public void init()
    {
        b1 = new Button("Visualizar la ventana");
        add(b1);
        b1.addActionListener(this);

        b2 = new Button("Ocultar la ventana");
        add(b2);
        b2.addActionListener(this);

        window = new labelFrame("Ventana Java");
        window.setSize(350, 250);
    }

    public void actionPerformed(ActionEvent event)
    {
        if(event.getSource() == b1){
            window.setVisible(true);
        }
        if(event.getSource() == b2){
            window.setVisible(false);
        }
    }
}

class labelFrame extends Frame implements MouseListener {
    Label label;

    labelFrame(String title){
        super(title);
        setLayout(new FlowLayout());
        label = new Label("Hola desde Java! Esta es una ventana frame.");
        add(label);
        addMouseListener(this);
         addWindowListener(new WindowAdapter() {public void
             windowClosing(WindowEvent e) {setVisible(false);}});
    }

    public void mousePressed(MouseEvent e)
    {
        if((e.getModifiers() & InputEvent.BUTTON1_MASK) ==
            InputEvent.BUTTON1_MASK){
            label.setText("Boton izquierdo del raton pulsado en " + e.getX() + "," + e.getY());
        }
        else{
            label.setText("Boton derecho del raton pulsado en " + e.getX() + "," + e.getY());
        }
    }

    public void mouseClicked(MouseEvent e)
    {
        label.setText("Pulso el raton en " + e.getX() + "," + e.getY());
    }

    public void mouseReleased(MouseEvent e)
    {
        label.setText("Se solto el boton del raton.");
    }

    public void mouseEntered(MouseEvent e)
    {
        label.setText("Raton para introducir.");
    }

    public void mouseExited(MouseEvent e)
    {
        label.setText("Raton para salir.");
    }
}

Usar la interfaz lmageobserver en un applet de java

El resultado se muestra  donde la imagen aparece una vez
que ha sido totalmente cargada.

Bueno el ejemplo se pude ver mejor cuando la imagen al igual que el applet estan en un servidor web para realmente ver como se carga la imagen.

package masterdavidjavabasico;

import java.awt.*;
import java.applet.*;
import javax.swing.*;

/*
  <APPLET
      CODE=iobserver.class
      WIDTH=600
      HEIGHT=150 >
  </APPLET>
*/

public class iobserver extends Applet
{
    ImageIcon image;

    public void init()
    {
        image = new ImageIcon( "image.png");
    }

    public void paint(Graphics g)
    {
        image.paintIcon(this, g, 0, 0);
    }

  public boolean imageUpdate(Image img, int flags, int x, int y, int w, int h)
  {
      if ((flags & ALLBITS) != 0) { 
          repaint(x, y, w, h);      
      } 
      return (flags & ALLBITS) == 0;
  }
}

Canvas en applet de java

Cuando se hace clic sobre el applet, el canvas, que visualiza una figura pequeña, se mueve a la izquierda y
luego hacia la derecha.


package masterdavidjavabasico;

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

/*
  <APPLET
      CODE=canvas.class
      WIDTH=400
      HEIGHT=200 >
  </APPLET>
*/

public class canvas extends java.applet.Applet implements MouseListener {

    graphicsCanvas gc;
    Button button1;

    public void init()
    {
        gc = new graphicsCanvas();
        gc.setSize(100, 100);
        add(gc);
        addMouseListener(this);
    }
   
    public void mousePressed(MouseEvent e){}

    public void mouseClicked(MouseEvent e)
    {
       for(int loop_index = 0; loop_index < 150; loop_index++){
           gc.setLocation(loop_index, 0);
       }
    }
    public void mouseReleased(MouseEvent e){}
    public void mouseEntered(MouseEvent e){}
    public void mouseExited(MouseEvent e){}
}

class graphicsCanvas extends java.awt.Canvas
{
    public void paint (Graphics g)
    {
        g.drawOval(10, 50, 40, 40);
        g.drawLine(10, 50, 50, 90);
        g.drawLine(50, 50, 10, 90);
    }
}

Operar con figuras y libre en un applet activo

El usuario hace clic sobre un botón indicando qué clase de figura quiere dibujar,
con lo que se activa un indicador booleano en el programa. Cuando después
el usuario presiona el ratón en la superficie de dibujo, ésa ubicación se
almacena como start, usando un objeto Point (que tiene dos miembros de
datos: x e y). Cuando se suelta el ratón en una nueva posición, esta se
almacena como end. Al soltar el ratón, también se vuelve a pintar el programa,
y el usuario puede seleccionar la figura a dibujar, una recta, óvalo,
rectángulo o rectángulo redondeado, entre las posiciones start y end basándo- ,
se en el indicador boleano fijado al hacer clic sobre los botones.
El dibujo libre con el ratón es diferente. En ese caso, se almacenan hastfl
1.000 puntos sobre los que se mueve el ratón. En el momento de dibujar,
basta con unir los puntos con líneas (observe que no se genera un evento de
ratón por cada pixel sobre el que se mueve el ratón, por lo tanto es necesario
dibujar líneas entre las distintas posiciones del ratón que Java comunica).

package masterdavidjavabasico;

import java.awt.*;
import java.lang.Math;
import java.awt.event.*;
import java.awt.Graphics;
import java.applet.Applet;

/*
  <APPLET
      CODE=dibujar.class
      WIDTH=600
      HEIGHT=200 >
  </APPLET>
*/

public class dibujar extends Applet implements ActionListener, MouseListener, MouseMotionListener {
    Button bDraw, bLine, bOval, bRect, bRounded;
    Point dot[] = new Point[1000];
    Point start, end;
    int dots = 0;

    boolean mouseUp = false;
    boolean draw = false;
    boolean line = false;
    boolean oval = false;
    boolean rectangle = false;
    boolean rounded = false;

    public void init()
    {
        bLine = new Button("Dibujar rectas");
        bOval = new Button("Dibujar ovalos");
        bRect = new Button("Dibujar rectangulos");
        bRounded = new Button("Dibujar rectangulos redondeados");
        bDraw = new Button("Dibujo libre");

        add(bLine);
        add(bOval);
        add(bRect);
        add(bRounded);
        add(bDraw);

        bLine.addActionListener(this);
        bOval.addActionListener(this);
        bRect.addActionListener(this);
        bRounded.addActionListener(this);
        bDraw.addActionListener(this);

        addMouseListener(this);
        addMouseMotionListener(this);
    }
   
    public void mousePressed(MouseEvent e)
    {
        mouseUp = false;
        start = new Point(e.getX(), e.getY());
    }

    public void mouseReleased(MouseEvent e)
    {
        if(line){
            end = new Point(e.getX(), e.getY());
        } else {
            end = new Point(Math.max(e.getX(), start.x),
                Math.max(e.getY(), start.y));
            start = new Point(Math.min(e.getX(), start.x),
                Math.min(e.getY(), start.y));
        }
        mouseUp = true;
        repaint();
    }

    public void mouseDragged(MouseEvent e)
    {
        if(draw){
            dot[dots] = new Point(e.getX(), e.getY());
            dots++;
            repaint();
        }
    }

    public void mouseClicked(MouseEvent e){}
    public void mouseEntered(MouseEvent e){}
    public void mouseExited(MouseEvent e){}
    public void mouseMoved(MouseEvent e){}

    public void paint (Graphics g)
    {
        if (mouseUp) {
            int width = end.x - start.x;
            int height = end.y - start.y;

            if(line){
                g.drawLine(start.x, start.y, end.x, end.y);
            }
            else if(oval){
                g.drawOval(start.x, start.y, width, height);
            }
            else if(rectangle){
                g.drawRect(start.x, start.y, width, height);
            }
            else if(rounded){
                g.drawRoundRect(start.x, start.y, width, height, 10, 10);
            }
            else if(draw){
                for(int loop_index = 0; loop_index < dots - 1; loop_index++){
                    g.drawLine(dot[loop_index].x, dot[loop_index].y,
                        dot[loop_index + 1].x, dot[loop_index + 1].y);
                }
            }
        }
    }

    public void actionPerformed(ActionEvent e)
    {
        setFlagsFalse();
        if(e.getSource() == bDraw)draw = true;
        if(e.getSource() == bLine)line = true;
        if(e.getSource() == bOval)oval = true;
        if(e.getSource() == bRect)rectangle = true;
        if(e.getSource() == bRounded)rounded = true;
    }

    void setFlagsFalse()
    {
        rounded = false;
        line = false;
        oval = false;
        rectangle = false;
        draw = false;
    }
}

Poner una imagen en un applet de java

Aqui veremos como colocar una imagen en un applet y darle hubicasion

package masterdavidjavabasico;

import java.awt.*;
import java.applet.*;
import javax.swing.*;

/*
  <APPLET
      CODE=imagen.class
      WIDTH=500
      HEIGHT=150 >
  </APPLET>
*/

public class imagen extends Applet
{
    private ImageIcon image;
   

    public void init()
    {
       
        image = new ImageIcon("image.png");
    }

    public void paint(Graphics g)
    {


        image.paintIcon(this, g, 0, 0);
       
    }
}