Download UNIDAD I.- Elementos de Interfaces Gráficas

Document related concepts
no text concepts found
Transcript
Tópicos Selectos de Programación
UNIDAD I.- Elementos de Interfaces Gráficas
___________________________________________________________________
LECCIÓN 1.5.- Computación gráfica
___________________________________________________________________
1.5.1.-Sistema de coordenadas
Para ubicar los objetos gráficos se utiliza un sistema de coordenadas
Espacio del dispositivo: Es el espacio de referencia del dispositivo de despliegue:
Rafael Rivera López
1
Tópicos Selectos de Programación
1.5.2.- Contexto Gráfico
–
La parte interna de cualquier componente se conoce como contexto gráfico.
–
El contexto gráfico es un lienzo donde se pueden hacer trazos.
–
Todo componente puede modificar el contexto gráfico usando:
–
–
el método paint(Graphics g) para componentes AWT.
–
el método paintComponent(Graphics g) para componentes Swing.
En Java se utiliza un objeto como motor de interpretación de los trazos en el contexto
gráfico (también se le conoce como brocha). La brocha es un objeto de la clase:
–
java.awt.Graphics que contiene métodos básicos para interpretar primitivas gráficas y
controlar los modos de despliegue.
–
–
java.awt.Graphics2D que es una forma mejorada.
El método getGraphics() sirve para generar un objeto de la clase Graphics.
1.5.3.- Método paint
–
El método paint() es invocado automáticamente cuando se cambia el tamaño de la
ventana.
–
Cuando se está dibujando sobre el contexto gráfico, puede ser necesario repintar el área,
utilizando el método repaint().
–
repaint() solicita al sistema que ejecute paint() con los valores actuales de los objetos. El
sistema de ventanas llama al método update() que limpia la pantalla, para luego llamar a
paint().
Rafael Rivera López
2
Tópicos Selectos de Programación
1.5.4.- java.awt.Graphics
void setColor(Color c)
void setFont(Font f)
void setXORMode(Color c)
void setPaintMode()
void translate(int x, int y)
void drawString(String str, int x, int y)
void drawLine(int x1, int y1, int x2, int y2)
void drawRect(int x1, int y1, int width, int height)
void drawOval(int x1, int y1, int width, int height)
void drawArc(int x1, int y1, int width, int height, int start, int arc)
void drawRoundRect(int x1, int y1, int width, int height, int arcW, int arcH)
void drawPolygon(int[] xPoints, int[] yPoints, int nPoints)
void fillRect(int x1, int y1, int width, int height)
void fillOval(int x1, int y1, int width, int height)
void fillArc(int x1, int y1, int width, int height, int start, int arc)
void fillRoundRect(int x1, int y1, int width, int height, int arcW, int arcH)
void fillPolygon(int[] xPoints, int[] yPoints, int nPoints)
1.5.5.- Colores, Fuentes e Imágenes
Color
Para definir un nuevo color con el cual se dibuje en el lienzo, se utiliza el método
setColor(Color c).
–
Se pueden utilizar los colores definidos en la clase Color (red, magenta, cyan, black, ...)
Rafael Rivera López
3
Tópicos Selectos de Programación
–
–
g.setColor(Color.red).
Se pude crear un color a partir de sus componentes rojo, verde y azul
–
g.setColor(new Color(rojo,verde,azul)).
–
Los componentes de color tienen valores entre 0 y 255.
Font
Para definir un nuevo tipo de letra con el cual se escriba en el lienzo, se utiliza el método
setFont(Font f).
–
Se crea una fuente a través del contructor: Font(fuente,tipo,puntos).
–
Se pueden utilizar las fuentas cargadas en la máquina o cinco tipos de letras definidas
como base (SansSerif, Serif, Monospaced, Dialog y DialogInput)
–
El tipo puede ser: BOLD, ITALIC, PLAIN o combinaciones
–
El método drawString(String s, int x, int y) permite escribir un texto en el contexto gráfico.
Image
Las imágenes guardadas en un dispositivo se pueden colocar en el contexto gráfico
utilizando un objeto de la clase Image.
–
Se requiere utilizar el método getToolkit() que sirve como enlace entre el contexto gráfico
y la plataforma.
–
El método drawImage() despliega la imágen
Rafael Rivera López
4
Tópicos Selectos de Programación
package dialogossimples;
import javax.swing.*;
import java.awt.*;
public class Contexto1 extends JFrame{
public Contexto1(){
super("Colores, Fuentes e Imágenes");
setSize(400,400);
setLocation(100,100);
getContentPane().setBackground(Color.cyan);
add(new MiPanel());
setVisible(true);
}
}
class MiPanel extends JPanel{
public void paint(Graphics g){
Font f1 = new Font("Arial",Font.BOLD,24);
Font f2 = new Font("Courier New",Font.BOLD | Font.ITALIC,18);
String archivo = "java-1.jpg";
Image image = getToolkit().getImage(archivo);
g.setColor(Color.blue);
g.drawString("Mensaje en azul", 100, 10);
g.setColor(new Color(124,200,80));
g.drawString("Mensaje en un nuevo color", 100, 40);
g.setFont(f1);
g.drawString("Mensaje en Arial", 100, 80);
g.setFont(f2);
g.drawString("Mensaje en Courier", 100, 120);
g.drawImage(image, 100,160, this);
}
}
Rafael Rivera López
5