SlideShare una empresa de Scribd logo
Curso de Java

                               Cápsulas Formativas



Modo gráfico. Dibujando en Java


Texto y fuentes.

Ahora que podemos crear una ventana, vamos a empezar por escribir un texto en
ella. Crearemos una clase MiFrame que herede de JFrame. Para ello, además de
los métodos anteriores, también tendremos que sobrescribir el método
paint(Graphics g) que se hereda de java.awt.Component y allí especificaremos
lo que queremos dibujar, o escribir.

El método paint(Graphics g) es el encargado de pintar los componentes en la
pantalla, de tal manera que será el método que se invoque cada vez que nuestra
aplicación necesite ser redibujada. Por ejemplo, cuando pongamos otra ventana
encima y luego la quitemos, el trozo destruido de nuestra aplicación (el trozo
ocultado por la otra ventana) necesitará ser redibujado. De esto se encarga
siempre dicho método.

La particularidad de este método es que no lo llamaremos directamente mediante
una invocación corriente, sino que lo haremos a través de una llamada al método
repaint(), que será el encargado de hacer los cálculos pertinentes para reparar la
zona de pantalla que ha sido destruida y hacer así que sólo se redibuje lo
necesario; ganando así en velocidad de refresco y evitando efectos de parpadeo.

La manera de escribir texto (y dibujar) consiste en manipular el parámetro de tipo
Graphics que recibe. Por ejemplo


     import javax.swing.*;
     import java.awt.*;
     import java.awt.event.*;
     public class MiFrame extends JFrame {

             public MiFrame() {
               super("¡Hola mundo con ventanas!");
               setBackground(Color.orange);
               setSize(300,300);
               setVisible(true);
             }
             public void paint(Graphics g) {
               g.drawString("Tenemos el mejor profe de Java",40,160);
             }
             public static void main(String args[]) {
               MiFrame mf = new MiFrame();

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



Jesús Cáceres Tello                                                      Pág. 1 - 7
Curso de Java

                            Cápsulas Formativas




                              Ejecución de la clase MiFrame


El método drawString(...) tiene tres parámetros, el String, y las coordenadas x e
y. Estas coordenadas se consideran a partir de la esquina superior izquierda. Cada
vez que se tiene que refrescar la pantalla, Java llama al método update() (de la
clase Component), que borra la pantalla y luego éste llama a paint(), que es donde
definimos usualmente lo que deseamos dibujar.

Cuando escribimos con la llamada a drawString(...), la fuente usada es la que esté
activa. Podemos definir una fuente con el tipo de letra, el estilo y el tamaño.

Luego asignaremos esta fuente al entorno gráfico.


Font f = new Font("Times Roman", Font.BOLD + Font.ITALIC, 12);
g.setFont(f);


Los estilos permitidos, definidos como constantes estáticas de la clase Font, son:

   •   Font.PLAIN,
   •   Font.BOLD,
   •   Font.ITALIC
   •   Font.BOLD + Font.ITALIC

Una vez hemos definido la fuente que utilizamos, podemos recurrir a la clase
FontMetrics para averiguar el tamaño que ocuparán las letras en nuestra ventana
(en pixels).

                      FontMetrics fm = g.getFontMetrics(f);


Los métodos que encontraremos en la clase FontMetrics:



Jesús Cáceres Tello                                                         Pág. 2 - 7
Curso de Java

                               Cápsulas Formativas


   •   int getAscent (): distancia baseline basta la altura de las mayúsculas.
   •   int getDescent (): distancia baseline hasta profundidad de los caracteres
       que descienden.
   •   int getLeading(): espacio mínimo entre líneas.
   •   int qetHeighc(): distancia entre dos líneas (descent + leading + ascent).
   •   int getMaxAscent(): ascent máximo.
   •   int getMaxDescent(): descent máximo.
   •   int stringWidth(String st): anchura de un string dado.




              Resultado de seleccionar un tipo de letra para el objeto Graphics



Líneas.

Las líneas en Java se dibujan con el método drawLine(...). En el ejemplo anterior
sólo habría que añadir una instrucción al método paint().

                                g.drawLine(5, 10,30,50);


Los parámetros son cuatro valores enteros (int) que corresponden respectivamente
a las coordenadas x e y iniciales y finales.


Rectángulos.

También existe un método específico para los rectángulos (hay que recordar que el
cuadrado es un caso particular del rectángulo).


                           g.drawRect (x,y, anchura,altura);


Las variables x e y determinan la esquina superior izquierda y las otras dos la
anchura y altura del rectángulo. Los cuatro valores son de tipo int. Hay otros
métodos que dibujan un rectángulo con las esquinas redondeadas, rectángulo en
tres dimensiones y para que el rectángulo aparezca relleno.

   •   void drawRoundRect(int x, int y, int width, int height, int arcwidtri, int
       arcHeight)
   •   void draw3DRect(int x, int y, int width, int heiqht, boolean raised)
   •   void fillRect(int x, int y, int width, int heiqht)
   •   void fillRoundRect(int x, int y, int widch, int heiqht, int arcwidth, int
       arcHeight)

void fill3DRect(int x, int y, int width, int height, boolean raised)



Jesús Cáceres Tello                                                               Pág. 3 - 7
Curso de Java

                              Cápsulas Formativas




Polígonos.

Existe una función drawPolygon(...), pero no es tan sencilla de usar como los
rectángulos ya que el parámetro que recibe es un polígono o los arrays con las
coordenadas.

   •     void drawPolygon(Polygon P).
   •     void drawPolygon(int[] xCoords, int [] yCoords, int n)

xCoords son las coordenadas x de los vértices, yCoords son las coordenadas y de
los vértices y n es el número de vértices.

Se dibujarán líneas de tal manera que queden con los puntos (xCoords[i],
yCords[i]) de punto incial y de punto final (xCoords[i+1], yCords[i+1]).

El polígono es un conjunto de segmentos que se cierra automáticamente. Con esto
quiero decir que para dibujar un triángulo, por ejemplo, sólo hay que dar las
coordenadas de los tres vértices y el sistema ya sabe que tiene que interpretar el
último par de coordenadas y el primer par de coordenadas dados como el inicio y el
fin respectivamente del segmento que cierra el polígono.

Para definir un polígono usamos el constructor y luego añadimos los puntos uno a
uno.

Polygon p = new Polygon();
p.addPoint(x,y)

También encontramos una función fillPolygon(...) con el mismo comportamiento
que las que hemos visto para los rectángulos.


Óvalos.

Existe un método para dibujar elipses (y circunferencias), aunque Java las
denomina óvalos.

  void drawOval(int x, int y, int anchura, int altura)

Los cuatro parámetros del óvalo son las que delimitan el rectángulo que
circunscribe la elipse. También existe el método fillOval(...).

Arcos.

La última forma geométrica que nos permite dibujar Java son los arcos.




Jesús Cáceres Tello                                                          Pág. 4 - 7
Curso de Java

                            Cápsulas Formativas


void drawArc(int x, int y, int anchura, int altura, int anguloInicial,int
arcoAngulo)




Los cuatro primeros valores definen el rectángulo como en los óvalos, los dos
últimos son el ángulo inicial y el ángulo del arco (relativo al ángulo inicial). El
rectángulo es donde se encuadra el arco, el parámetro de anguloInicial indica
posición desde qué posición se empieza a dibujar el arco y el arcoAngulo indica la
porción de arco que hay que dibujar.

Por ejemplo, para dibujar una semicircunferencia, el rectángulo deberá ser un
cuadrado, a continuación fijar el ángulo inicial y luego decirle que dibuje 180
grados.

Cuando usamos el método fillArc(...), la figura rellenada es el sector de la elipse
delimitado por el arco y las líneas imaginarias que irían desde el centro de la elipse
hasta los extremos del arco.


Colores.

El texto que escribimos o las formas y figuras que dibujamos aparecen en el color
que haya definido. Este color lo podemos modificar a nuestro gusto gracias al
método setColor(...) de la clase Graphics, que recibe un parámetro de tipo Color.

Hay unas constantes en la clase Color que tienen definidos los valores black , blue,
cyan, darkGray, gray, green, lightcray, magenta, orange, pink, red, white y yellow.
Si estos colores no nos bastan, podemos crear nuestro propio color a partir de sus
valores RGB.

   Color o = new Color(r,g,b)

Podemos cambiar el color de escritura de nuestra variable de gráficos y el color de
fondo de nuestro contenedor (en nuestro ejemplo el Frame).

  g.setColor(Color.red)
  setBackground(Color.white);


Jesús Cáceres Tello                                                         Pág. 5 - 7
Curso de Java

                             Cápsulas Formativas




     import javax.swing.*;
     import java.awt.*;
     public class MiFrame extends JFrame {
             public MiFrame() {
                     super("¡Hola mundo con ventanas!");
                     setSize(300,300);
                     setVisible(true);
             }
             public void paint(Graphics g) {
                      // Cambiamos el color del fondo del framse
                     getContentPane().setBackground(Color.white);
                     // Dibujamos texto
                     Font f = new Font("Arial", Font.BOLD + Font.ITALIC, 14);
                     g.setFont(f);
                     g.drawString("Tenemos los mejores profes de Java",24,160);
                     // Dibujamos líneas
                     g.setColor(Color.red);
                     g.drawLine(24,135,265,135);
                     g.setColor(Color.blue);
                     g.drawLine(24,175,265,175);
                     // Dibujamos un rectángulo
                     g.setColor(Color.black);
                     g.drawRect(12,119,265,70);
                     // Dibujamos un triángulo (polígono)
                      int[] xCoords = new int[4];
                      int[] yCoords = new int[4];
                     xCoords[0]=150;
                     yCoords[0]=35;
                     xCoords[1]=100;
                     yCoords[1]=100;
                     xCoords[2]=200;
                     yCoords[2]=100;
                     g.setColor(Color.green);
                     g.drawPolygon(xCoords,yCoords,3);
                     // Dibujamos óvalos
                     g.setColor(Color.orange);
                     g.fillOval(107,200,85,85);
                     g.setColor(Color.black);
                     g.drawOval(120,220,20,10);
                     g.drawOval(158,220,20,10);
                      // Dibujamos un arco
                     g.drawArc(128,235,40,35,190,160);
             }
             public static void main(String args[]) {
                     MiFrame mf = new MiFrame();
                     mf.repaint();
                     mf.addWindowListener( new WindowAdapter() {
                        public void windowClosing( WindowEvent evt ){
                        System.exit( 0 );}
                     });
             }
      }

Jesús Cáceres Tello                                                               Pág. 6 - 7
Curso de Java

                            Cápsulas Formativas




El código anterior tiene un error, encuéntralo y subsánalo para que la salida sea tan
espectacular con la que se muestra a continuación.




                           Ejecución del código anterior




Jesús Cáceres Tello                                                         Pág. 7 - 7

Más contenido relacionado

PPT
PDF
Creación interactiva web: Processing
PDF
Programar En Matlab
PDF
Arreglos en c ++
DOCX
Ejercicios de matrices y vectores en c++
PDF
Gráficos en MATLAB
PDF
Introducción a Processing
PDF
Funciones con vectores y matrices
Creación interactiva web: Processing
Programar En Matlab
Arreglos en c ++
Ejercicios de matrices y vectores en c++
Gráficos en MATLAB
Introducción a Processing
Funciones con vectores y matrices

La actualidad más candente (20)

PPT
PDF
Manejo basico de imagenes matlab
PDF
Funciones con vectores y matrices
PPT
Arreglos
PDF
PPT
4 variables, arreglos, estructuras y enum
PPT
MATLAB 2010
PPTX
Arreglos c++
PPTX
Video 1 metodos y arreglos
PPTX
Operaciones matemáticas con arrays y aplicaciones
PDF
Arreglos C#
PPT
Taller processing arduino
PDF
Interpolaion c++
PDF
PDF
Curso matlab
PPTX
Arrays unidimensionales
PDF
Arreglos
Manejo basico de imagenes matlab
Funciones con vectores y matrices
Arreglos
4 variables, arreglos, estructuras y enum
MATLAB 2010
Arreglos c++
Video 1 metodos y arreglos
Operaciones matemáticas con arrays y aplicaciones
Arreglos C#
Taller processing arduino
Interpolaion c++
Curso matlab
Arrays unidimensionales
Arreglos
Publicidad

Similar a Java modografico (20)

PPTX
Clase 3 (1)
PPT
Temaswing
PPTX
Trabajo de computacion
PPTX
Graficas en matlab 2 d y 3d
PDF
Luis Gamboa
PPTX
Graficas en matlab juan villacis 2 do b
PPTX
Graficas en matlab juan villacis 2 do b
PPTX
Graficas en matlab juan villacis 2 do b
PDF
Desarrollo de ejercicios básicos en matlab
PDF
Cuadernillo Programación
PPTX
Lenguaje de Programacion - Java
PDF
Applets.pdf
PDF
PPTX
Graficas matlab
PPTX
Presentación de matlab electromagnetismo ...
PDF
DCI_I50N_PPT_INTROAJAVA_S2_24C2A UTP 2025
PPTX
Gráficas en Matlab
PDF
cap7.pdf
PPSX
Aplicación de arreglos bidimensionales
PPTX
Entrada y salida, manejo de cadenas de texto
Clase 3 (1)
Temaswing
Trabajo de computacion
Graficas en matlab 2 d y 3d
Luis Gamboa
Graficas en matlab juan villacis 2 do b
Graficas en matlab juan villacis 2 do b
Graficas en matlab juan villacis 2 do b
Desarrollo de ejercicios básicos en matlab
Cuadernillo Programación
Lenguaje de Programacion - Java
Applets.pdf
Graficas matlab
Presentación de matlab electromagnetismo ...
DCI_I50N_PPT_INTROAJAVA_S2_24C2A UTP 2025
Gráficas en Matlab
cap7.pdf
Aplicación de arreglos bidimensionales
Entrada y salida, manejo de cadenas de texto
Publicidad

Último (20)

PDF
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
PDF
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
PDF
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
DOCX
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
PPTX
caso clínico iam clinica y semiología l3.pptx
PDF
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
PDF
biología es un libro sobre casi todo el tema de biología
PDF
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
PDF
COMUNICACION EFECTIVA PARA LA EDUCACION .pdf
PDF
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
PDF
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
PPT
Cosacos y hombres del Este en el Heer.ppt
PDF
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
PDF
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
PDF
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
PDF
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
PDF
Habitos de Ricos - Juan Diego Gomez Ccesa007.pdf
PDF
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
PDF
Tomo 1 de biologia gratis ultra plusenmas
PDF
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
caso clínico iam clinica y semiología l3.pptx
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
biología es un libro sobre casi todo el tema de biología
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
COMUNICACION EFECTIVA PARA LA EDUCACION .pdf
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
Cosacos y hombres del Este en el Heer.ppt
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
Habitos de Ricos - Juan Diego Gomez Ccesa007.pdf
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
Tomo 1 de biologia gratis ultra plusenmas
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf

Java modografico

  • 1. Curso de Java Cápsulas Formativas Modo gráfico. Dibujando en Java Texto y fuentes. Ahora que podemos crear una ventana, vamos a empezar por escribir un texto en ella. Crearemos una clase MiFrame que herede de JFrame. Para ello, además de los métodos anteriores, también tendremos que sobrescribir el método paint(Graphics g) que se hereda de java.awt.Component y allí especificaremos lo que queremos dibujar, o escribir. El método paint(Graphics g) es el encargado de pintar los componentes en la pantalla, de tal manera que será el método que se invoque cada vez que nuestra aplicación necesite ser redibujada. Por ejemplo, cuando pongamos otra ventana encima y luego la quitemos, el trozo destruido de nuestra aplicación (el trozo ocultado por la otra ventana) necesitará ser redibujado. De esto se encarga siempre dicho método. La particularidad de este método es que no lo llamaremos directamente mediante una invocación corriente, sino que lo haremos a través de una llamada al método repaint(), que será el encargado de hacer los cálculos pertinentes para reparar la zona de pantalla que ha sido destruida y hacer así que sólo se redibuje lo necesario; ganando así en velocidad de refresco y evitando efectos de parpadeo. La manera de escribir texto (y dibujar) consiste en manipular el parámetro de tipo Graphics que recibe. Por ejemplo import javax.swing.*; import java.awt.*; import java.awt.event.*; public class MiFrame extends JFrame { public MiFrame() { super("¡Hola mundo con ventanas!"); setBackground(Color.orange); setSize(300,300); setVisible(true); } public void paint(Graphics g) { g.drawString("Tenemos el mejor profe de Java",40,160); } public static void main(String args[]) { MiFrame mf = new MiFrame(); mf.addWindowListener( new WindowAdapter() { public void windowClosing( WindowEvent evt ){ System.exit( 0 );} }); } } Jesús Cáceres Tello Pág. 1 - 7
  • 2. Curso de Java Cápsulas Formativas Ejecución de la clase MiFrame El método drawString(...) tiene tres parámetros, el String, y las coordenadas x e y. Estas coordenadas se consideran a partir de la esquina superior izquierda. Cada vez que se tiene que refrescar la pantalla, Java llama al método update() (de la clase Component), que borra la pantalla y luego éste llama a paint(), que es donde definimos usualmente lo que deseamos dibujar. Cuando escribimos con la llamada a drawString(...), la fuente usada es la que esté activa. Podemos definir una fuente con el tipo de letra, el estilo y el tamaño. Luego asignaremos esta fuente al entorno gráfico. Font f = new Font("Times Roman", Font.BOLD + Font.ITALIC, 12); g.setFont(f); Los estilos permitidos, definidos como constantes estáticas de la clase Font, son: • Font.PLAIN, • Font.BOLD, • Font.ITALIC • Font.BOLD + Font.ITALIC Una vez hemos definido la fuente que utilizamos, podemos recurrir a la clase FontMetrics para averiguar el tamaño que ocuparán las letras en nuestra ventana (en pixels). FontMetrics fm = g.getFontMetrics(f); Los métodos que encontraremos en la clase FontMetrics: Jesús Cáceres Tello Pág. 2 - 7
  • 3. Curso de Java Cápsulas Formativas • int getAscent (): distancia baseline basta la altura de las mayúsculas. • int getDescent (): distancia baseline hasta profundidad de los caracteres que descienden. • int getLeading(): espacio mínimo entre líneas. • int qetHeighc(): distancia entre dos líneas (descent + leading + ascent). • int getMaxAscent(): ascent máximo. • int getMaxDescent(): descent máximo. • int stringWidth(String st): anchura de un string dado. Resultado de seleccionar un tipo de letra para el objeto Graphics Líneas. Las líneas en Java se dibujan con el método drawLine(...). En el ejemplo anterior sólo habría que añadir una instrucción al método paint(). g.drawLine(5, 10,30,50); Los parámetros son cuatro valores enteros (int) que corresponden respectivamente a las coordenadas x e y iniciales y finales. Rectángulos. También existe un método específico para los rectángulos (hay que recordar que el cuadrado es un caso particular del rectángulo). g.drawRect (x,y, anchura,altura); Las variables x e y determinan la esquina superior izquierda y las otras dos la anchura y altura del rectángulo. Los cuatro valores son de tipo int. Hay otros métodos que dibujan un rectángulo con las esquinas redondeadas, rectángulo en tres dimensiones y para que el rectángulo aparezca relleno. • void drawRoundRect(int x, int y, int width, int height, int arcwidtri, int arcHeight) • void draw3DRect(int x, int y, int width, int heiqht, boolean raised) • void fillRect(int x, int y, int width, int heiqht) • void fillRoundRect(int x, int y, int widch, int heiqht, int arcwidth, int arcHeight) void fill3DRect(int x, int y, int width, int height, boolean raised) Jesús Cáceres Tello Pág. 3 - 7
  • 4. Curso de Java Cápsulas Formativas Polígonos. Existe una función drawPolygon(...), pero no es tan sencilla de usar como los rectángulos ya que el parámetro que recibe es un polígono o los arrays con las coordenadas. • void drawPolygon(Polygon P). • void drawPolygon(int[] xCoords, int [] yCoords, int n) xCoords son las coordenadas x de los vértices, yCoords son las coordenadas y de los vértices y n es el número de vértices. Se dibujarán líneas de tal manera que queden con los puntos (xCoords[i], yCords[i]) de punto incial y de punto final (xCoords[i+1], yCords[i+1]). El polígono es un conjunto de segmentos que se cierra automáticamente. Con esto quiero decir que para dibujar un triángulo, por ejemplo, sólo hay que dar las coordenadas de los tres vértices y el sistema ya sabe que tiene que interpretar el último par de coordenadas y el primer par de coordenadas dados como el inicio y el fin respectivamente del segmento que cierra el polígono. Para definir un polígono usamos el constructor y luego añadimos los puntos uno a uno. Polygon p = new Polygon(); p.addPoint(x,y) También encontramos una función fillPolygon(...) con el mismo comportamiento que las que hemos visto para los rectángulos. Óvalos. Existe un método para dibujar elipses (y circunferencias), aunque Java las denomina óvalos. void drawOval(int x, int y, int anchura, int altura) Los cuatro parámetros del óvalo son las que delimitan el rectángulo que circunscribe la elipse. También existe el método fillOval(...). Arcos. La última forma geométrica que nos permite dibujar Java son los arcos. Jesús Cáceres Tello Pág. 4 - 7
  • 5. Curso de Java Cápsulas Formativas void drawArc(int x, int y, int anchura, int altura, int anguloInicial,int arcoAngulo) Los cuatro primeros valores definen el rectángulo como en los óvalos, los dos últimos son el ángulo inicial y el ángulo del arco (relativo al ángulo inicial). El rectángulo es donde se encuadra el arco, el parámetro de anguloInicial indica posición desde qué posición se empieza a dibujar el arco y el arcoAngulo indica la porción de arco que hay que dibujar. Por ejemplo, para dibujar una semicircunferencia, el rectángulo deberá ser un cuadrado, a continuación fijar el ángulo inicial y luego decirle que dibuje 180 grados. Cuando usamos el método fillArc(...), la figura rellenada es el sector de la elipse delimitado por el arco y las líneas imaginarias que irían desde el centro de la elipse hasta los extremos del arco. Colores. El texto que escribimos o las formas y figuras que dibujamos aparecen en el color que haya definido. Este color lo podemos modificar a nuestro gusto gracias al método setColor(...) de la clase Graphics, que recibe un parámetro de tipo Color. Hay unas constantes en la clase Color que tienen definidos los valores black , blue, cyan, darkGray, gray, green, lightcray, magenta, orange, pink, red, white y yellow. Si estos colores no nos bastan, podemos crear nuestro propio color a partir de sus valores RGB. Color o = new Color(r,g,b) Podemos cambiar el color de escritura de nuestra variable de gráficos y el color de fondo de nuestro contenedor (en nuestro ejemplo el Frame). g.setColor(Color.red) setBackground(Color.white); Jesús Cáceres Tello Pág. 5 - 7
  • 6. Curso de Java Cápsulas Formativas import javax.swing.*; import java.awt.*; public class MiFrame extends JFrame { public MiFrame() { super("¡Hola mundo con ventanas!"); setSize(300,300); setVisible(true); } public void paint(Graphics g) { // Cambiamos el color del fondo del framse getContentPane().setBackground(Color.white); // Dibujamos texto Font f = new Font("Arial", Font.BOLD + Font.ITALIC, 14); g.setFont(f); g.drawString("Tenemos los mejores profes de Java",24,160); // Dibujamos líneas g.setColor(Color.red); g.drawLine(24,135,265,135); g.setColor(Color.blue); g.drawLine(24,175,265,175); // Dibujamos un rectángulo g.setColor(Color.black); g.drawRect(12,119,265,70); // Dibujamos un triángulo (polígono) int[] xCoords = new int[4]; int[] yCoords = new int[4]; xCoords[0]=150; yCoords[0]=35; xCoords[1]=100; yCoords[1]=100; xCoords[2]=200; yCoords[2]=100; g.setColor(Color.green); g.drawPolygon(xCoords,yCoords,3); // Dibujamos óvalos g.setColor(Color.orange); g.fillOval(107,200,85,85); g.setColor(Color.black); g.drawOval(120,220,20,10); g.drawOval(158,220,20,10); // Dibujamos un arco g.drawArc(128,235,40,35,190,160); } public static void main(String args[]) { MiFrame mf = new MiFrame(); mf.repaint(); mf.addWindowListener( new WindowAdapter() { public void windowClosing( WindowEvent evt ){ System.exit( 0 );} }); } } Jesús Cáceres Tello Pág. 6 - 7
  • 7. Curso de Java Cápsulas Formativas El código anterior tiene un error, encuéntralo y subsánalo para que la salida sea tan espectacular con la que se muestra a continuación. Ejecución del código anterior Jesús Cáceres Tello Pág. 7 - 7