Curso Java. GUI Volumen VI:Dibujar gráficos en un panel

Escrito por Adrián Crespo
Java
2

Seguimos adelante con las GUIs en el curso de Java de RedesZone. En la anterior entrega os propusimos un ejemplo en el cual veíais como se podían emplear los diferentes distribuidores de elementos (por si no lo recordáis eran el BorderLayout, GridLayout, FlowLayout) así como su comportamiento.

En la entrega de esta semana vamos a enseñaros como podéis pintar gráficos sobre un panel. Al principio os podrá parecer un poco aburrido y daros la sensación de que se pueden hacer muy pocas cosas. Pero esto es solo el principio y lo más básico. Ya que después de esto, se pueden hacer muchas más cosas con la clase Graphics de Java que es la que nos va a ocupar en el día de hoy.

Por lo tanto hoy empezaremos con cosas sencillas, tales como dibujar formas geométricas o como crear un panel que sirva como base a un dibujo. Después este panel puede añadirse a una GUI más compleja, pero de momento vamos con lo más básico.

Hay que tener una cosa clara y es que cada ventana tiene asociado un panel (Content pane) en el cuál se pueden realizar dibujos. Este panel se puede cambiar siempre que nosotros queramos con el método void setContentPane(Container contentPane), y también podemos el panel actual que estamos utilizando con el método Container getContentPane().

¿Cómo realizar dibujos en un panel?

Es muy importante que antes de que nos pongamos a programar dejar una cosa muy clara. El panel tiene asociado un sistema de coordenadas, por lo tanto, a la hora de elegir la ubicación del dibujo deberemos elegir las coordenadas para colocar el centro de cada una de las figuras que dibujemos.

Podéis observar que el punto origen (0,0) se encuentra posicionado en la esquina superior izquierda.

A continuación, vamos a poneros algunos métodos de la clase Graphics y que podréis utilizar para dibujar figuras:


A estas figuras también se las puede asignar un color u obtener el color actual que se esta utilizando los métodos son public void setColor(Color c) para asignar un nuevo color y public Color getColor() para obtener el color actual de la figura.

También tenemos unas variables de la clase Graphics las cuales son los distintos colores:

public final static Color red

public final static Color green

public final static Color blue

public final static Color yellow

public final static Color white

public final static Color black

Existen más que siguen el modelo anterior de declaración y que ya los iréis viendo y utilizando.

Construir nuestros colores y constructores

Una funcionalidad que nos da el paquete Graphics de Java es que podemos configurar nuestros propios colores jugando con los tres colores básicos, rojo, verde y azul. Por lo tanto la imagen rgb, tendrá cada uno de los tres colores un valor que irá desde 0 hasta 255.

public Color(int r, int g, int b)

Existe otro constructor alternativo, y también menos utilizado cuyas variables en vez de ser enteros son Float y por lo tanto el valor de entrada va desde 0.0 a 1.0.

public Color(float r, float g, float b)

Nosotros utilizaremos el primero que es además el más utilizado a día de hoy.

La forma de utilizar los constructores es la siguiente:

g.setColor(new Color(240, 35, 0))

Donde g es una figura de nombre g.

Hasta aquí el volumen de GUIs de hoy. Se ha tratado de un volumen más bien teórico pero no os preocupéis, en el siguiente volumen realizaremos un par de ejercicios con las figuras, paneles y la asignación de los colores y os plantearemos un ejercicio que podréis resolver.


Continúa leyendo
  • Hevelmo

    No tengo respuestas, te preguntas, y problemas con la libreria Graphics en java, espero tu puedas ayudarme, tengo una clase para hacer una grafica de barras con Graphics, tengo la estructura de la grafica, con sus coordenas que yo le asigne en el codigo, pero mi problema y que nadie a podido explicarme bien es como hago la funcio de agregarle los valores a las barras y se pinten de acuerdo al valor que le estoy asignando en el jtextfield

    • haber, lo primero y haber si me explico bien, partiendo mcomo base el ejemplo que pongo yo puedes hacer una clase que se llame diagrama de barras y que utilice graphics y que implemente estos métodos. Son muy orientativos pero deberian ser similares

      public GraficoBarras(int x, int y, int ancho, int alto, double[] valores) {
      super (x, y, ancho, alto, valores);
      }
      public void dibujaGrafica (Graphics g) {
      int anchoBarra=3*ancho/(4*n);
      int dx = ancho/n;
      int h;
      for(int i=0; i

  • Pingback: Curso gratis de introducción de Java | Formación Online()