Cómo Utilizar la Clase Panel

La clase Panel es una subclase de Container para propósitos generales. Se puede utilizar tal y como es para contener componentes, o se puede definir una subclase para realizar alguna función específica, como el manejo de eventos para los objetos contenidos en el Panel.

La clase Applet es una subclase de Panel con broches especiales para ejecutarse en un navegador o un visualiador de applets. Siempre que vea un programa que se puede ejecutar tanto como un applet como una aplicación, el truco está en que define una subclase de applet, pero no utiliza ninguna de las capacidades especiales del Applet, utilizando sólo los métodos heredados de la clase Panel.

Aquí tienes un ejemplo de utilización de un ejemplar de Pabel para contener algunos Componentes:

Panel p1 = new Panel();
p1.add(new Button("Button 1"));
p1.add(new Button("Button 2"));
p1.add(new Button("Button 3"));
Aquí tiene un ejemplo de una subclase de Panel que dibuja un marco alrededor de sus contenidos. Varias versiones de esta clase se utilizan en los ejemplos 1 y 2 de la página Dibujar figuras.
class FramedArea extends Panel {
    public FramedArea(CoordinatesDemo controller) {
                ...//Selecciona el controlador de disposición.
                 //Añade componentes a este panel...
    }

        //Asegura que no se han situado componentes en la parte superior del Frame.
        //Los valores de inset fueron determinados por ensayo y error.
    public Insets insets() {
        return new Insets(4,4,5,5);
    }

        //Dibuja el marco a los lados del Panel.
    public void paint(Graphics g) {
        Dimension d = size();
        Color bg = getBackground();
 
        g.setColor(bg);
        g.draw3DRect(0, 0, d.width - 1, d.height - 1, true);
        g.draw3DRect(3, 3, d.width - 7, d.height - 7, false);
    }
}

Muchos de los ejemplos de esta lección utilizan una subclase de Applet para manejar los eventos de los componentes que cotienen. Por ejemplo, puedes verlos en la página Cómo utilizar la Clase Dialog. Puede utilizar el manejo de eventos de estos y otros ejemplos como modelo para el manejo de los eventos de sus propias subclases de Applet o Panel.


Ozito