Manual de jdbc

Solo disponible en BuenasTareas
  • Páginas : 7 (1681 palabras )
  • Descarga(s) : 6
  • Publicado : 19 de julio de 2010
Leer documento completo
Vista previa del texto
Bueno, pues aquí os voy a intentar orientar un poco en el uso de los gráficos en Java. Os daré una idea básica y os pondré código con ejemplos sencillos.

Comienzo...

1.- Creación del componente para dibujar

En primer lugar, dememos saber que la clase Graphics no la podemos usar directamente. Ésta clase, hace referencia al contexto gráfico de una imágen, es decir, a la zona de memoria enla que se almacenan los pixeles de la misma y la información del gráfico (colores, etc...).

En sí en ella no podemos dibujar nada, puesto que un contexto gráfico debe pertenecer a algun objeto de tipo gráfico. Para nuestra práctica, un buen objeto, dado que vamos a usar formularios de SWING es usar un JPanel. (Al principio sugerí usar un Canvas, pero éste pertenece al paquete AWT y no se debenmezclar AWT con SWING).

Y ahora la pregunta: ¿Un JPanel? ¿pues no era un Graphics? Pues sí. Usaremos el contexto gráfico (Graphics) del JPanel.

Como sabemos, todos los componentes SWING heredan de JComponent. Éste, tiene un método llamado 'paintComponent' que es el que se llama para dibujar en pantalla (su contexto gráfico). Por defecto, este método dibuja el contenido de objetos que haydentro del JPanel, pero nosotros podemos sobrecargarlo y hacer que dibuje lo que queremos.

Entonces, básicamente lo que debemos hacer es obtener el contexto gráfico del JPanel y dibujar en él redefiniendo el método 'paintComponent'.

Nota: el código lo iremos rellenando poco a poco para saber qué incluimos en cada paso.

public class PanelDibujo extends JPanel {

// redefinimos para quesólo pinte en paintComponent y no borre todo.

public void update(Graphics g) {
paintComponent(g);
}

// éste método es el que redefinimos para dibujar lo que queramos

public void paintComponent(Graphics g) {

}

}

Creamos atributos de tipo Image que serán donde carguemos las imágenes. Pueden ser GIF, JPG o como recomiendo (por tener transparencias), losPNG.
Ésta imagen la vamos a dibujar, antes de enviarla al contexto del JPanel, a una segunda imagen. Es la llamada técnica del doble búfer, utilizada para que no haya parpadeos en pantalla a la hora de dibujar. La idea básica es:

Cargamos una imagen -> la pintamos en otra imagen temporal -> pintamos la temporal en el JPanel.

Creamos por tanto, los atributos Image y ponemos el código depaintComponent que dibuja la imagen del doble búfer:

public class PanelDibujo extends JPanel {

private Image imagen = null; // imagen en la que cargaremos el archivo gráfico
private Image imgDobleBufer = null; // imagen para el doble búfer

// redefinimos para que sólo pinte en paintComponent y no borre todo.

public void update(Graphics g) {paintComponent(g);
}

// éste método es el que redefinimos para dibujar lo que queramos

public void paintComponent(Graphics g) {
if (imgDobleBufer != null)
// Ponemos la imagen, la posición x e y, y a quién avisar cuando se dibuje, es decir al propio JPanel
g.drawImage(imgDobleBufer, 0, 0, this); // copia la imagen del doble búfer en el componente

}}

Pero... ¿Qué era aquello del Graphics? Aquí lo vemos.
Obtenemos el contexto de las imágenes para dibujar en ellas, por lo que crearemos un contexto para dibujar en la imagen del doble búfer. Será un atributo privado de la clase.
En el objeto de tipo Graphics es donde tenemos varios métodos de dibujado, para dibujar líneas, formas, texto, cambiar colores, dibujar otras imágenes (la queusaremos), etc...
Ahora es cuando creamos el búfer. Podemos hacerlo en el constructor del JPanel o en un método creado para dicho propósito. Por ejemplo, con un método 'inicializar()' tenemos:

public class PanelDibujo extends JPanel {

private Image imagen = null; // imagen en la que cargaremos el archivo gráfico
private Image imgDobleBufer = null; // imagen para el doble...
tracking img