03/03/14 20:39Todo Java: La clase Graphics
Pgina 1 de 4http://labojava.blogspot.com.es/2012/05/la-clase-graphics.html
Todo Javajueves, 31 de mayo de 2012
La clase GraphicsCasi%todas%las%componentes%y%contenedores%de%Swing%tienen%un%mtodo%paint(g)%asociado%que%sirve%para
dibujarlos%en%pantalla.%Java%invoca%este%mtodo%automticamente%cuando%tiene%que%mostrar,%de%forma
estndar,%la%componente%o%contenedor%en%cuestin%(esto%es,%sus%bordes,%su%ttulo,%si%lo%tiene,%etc.)
El%mtodo%paint(g)%se%redefine%cuando%se%quiere%que%estos%elementos%tengan%un%aspecto%particular,%por
ejemplo,%cuando%se%quiere%dibujar%algo%especfico%sobre%ellos.
El%mtodo%paint(g)%es%de%la%forma
public%void%paint(Graphics%g)%{
...
}
Donde%g%es%un%objeto%de%la%clase%abstracta%Graphics.%Todo%contenedor%o%componente%que%se%pueda%dibujar
en%pantalla%tiene%asociado%un%objeto%g%de%esta%clase,%con%la%informacin%sobre%el%rea%de%la%pantalla%que%el%
contenedor%o%la%componente%cubre.%Adems,%el%objeto%g%dispone%de%mtodos%para%hacer%grficos%(dibujar
crculos,%rectngulos,%lneas,%etc.)
La%clase%Graphics%se%importa%de%awt:
import%java.awt.*;
Cuando%el%mtodo%paint(g)%se%ejecuta%es%porque%ha%sido%invocado%por%otros%mtodos,%nunca%invocado%por
nosotros,%y%el%parmetro%que%usa%corresponde%a%un%objeto%de%la%clase%Graphics%asociado%al%contenedor%o
componente%que%estemos%manejando.
Cuando%se%redefine%el%mtodo%paint(g),%siempre%se%comienza%con%una%invocacin%super.paint(g)%al%mtodo
de%la%superclase,%asegurando%as%que%se%dibuja%la%parte%estndar%del%contenedor%o%componente%que
estemos%manejando.
Por%ejemplo,%vamos%a%dibujar%una%cara%en%un%marco.%Un%marco%es%un%elemento%de%la%clase%JFrame%y%para
dibujar%en%l%procedemos%as:
public%void%paint%(Graphics%g){
%%%%%%super.paint(g);
%%%%%%
%%%%%%//Dibujo%el%contorno%de%la%cara
%%%%%%g.setColor(Color.BLACK);
%%%%%%g.fillOval(105,%70,%100,%100);
%%%%%%
%%%%%%//Dibujo%de%los%ojos
%%%%%%g.setColor(Color.GREEN);
%%%%%%g.fillOval(125,%100,%10,%10);
%%%%%%g.fillOval(175,%100,%10,%10);
%%%%%%
%%%%%%//Dibujo%de%la%nariz
%%%%%%g.drawLine(150,%100,%150,%130);
%%%%%%
%%%%%%//Dibujo%de%la%boca
%%%%%%g.drawArc(118,%120,%75,%30,%180,%180);
%%%%}
Para%entender%lo%que%ha%hecho%el%mtodo%anterior%hay%que%saber%que:
El%sistema%de%coordenadas%de%un%contenedor%tiene%su%origen%en%su%esquina%superior%izquierda.
Las%abscisas%se%incrementan%hacia%la%derecha%y%las%ordenadas%hacia%abajo.
Cada%punto%es%un%pxel.
Pgina principal
Que es JAVA?
Organizacin en Java
Historia de Java
Desarrollo, Compilacion y Ejecucion
------------ SINTAXIS DE JAVA -----------
Definicin de Variables
Tipos de dato primitivo
Operadores
Estructuras de Control
Comentarios
NetBeans -Cosas Basicas-
--------- INTRODUCCION A OOP -----------
Definicion de Clases y Objetos
Atributos de instancia y de clase
Metodos de instancia y de clase
Encapsulamiento
Constructores y Destructores
Herencia
Casteos
Polimorfismo
Clase Abstracta
Interfaces
Paquetes
La keyword Final
Accesibilidad
------- CONCEPTOS GENERALES ---------
La Clase "String"
La Clase "System"
Wrappers de Tipos de Datos Primitivos
Comparacion entre objetos
-------- COLECCIONES / CONTENEDORES ----------
Contenedores
Iteradores -Recorrido de Contenedores-
----------- EXCEPCIONES ---------------
Excepciones
------------- STREAMS / ARCHIVOS ----------
Streams
------ COMPONENTES GRAFICOS ---------
La clase Graphics
La Interfaz Grafica
JFrame y JDialog
JOptionPane
JList y JTable
-------- GRAFICOS ESTADISTICOS ---------
Graficos Estadisticos
----- BASE DE DATOS / JDBC ------
Pginas
Compartir 1 Ms Siguiente blog Crear un blog Acceder
03/03/14 20:39Todo Java: La clase Graphics
Pgina 2 de 4http://labojava.blogspot.com.es/2012/05/la-clase-graphics.html
En%general,%el%dibujo%de%una%figura%(rectngulo,%elipse,%rectngulo%redondo,%etc.)%se%realiza
dando%las%coordenadas%de%la%esquina%superior%izquierda%de%un%rectngulo%imaginario%que%la
contiene.
Algunos%mtodos%de%la%clase%Graphics%para%dibujar%figuras%son:
drawLine(x1,y1,x2,y2):%dibuja%una%lnea%recta%desde%el%punto%(x1,y1)%al%punto%(x2,y2)
fillRect(x,y,ancho,alto):%rellena%el%rectngulo%que%tiene%su%esquina%superior%izquierda%en%(x,y)%y
el%ancho%y%largo%dados
drawOval(x,y,ancho,alto):%dibuja%una%elipse%contenida%en%un%rectngulo%imaginario%cuya
esquina%superior%izquierda%est%en%(x,y)%y%tiene%el%ancho%y%largo%dados
%fillOval(x,y,ancho,alto):%rellena%la%elipse%especificada%pordrawOval(x,y,ancho,largo)
drawArc(x,y,ancho,alto,%inicioAngulo,barridoAngulo):%dibuja%parte%de%una%elipse%dentro%de%un
rectngulo%imaginario%cuya%esquina%superior%izquierda%est%en%(x,y),%tiene%el%largo%y%ancho
dados,%empieza%a%dibujar%en%el%ngulo%inicioAngulo%y%hace%un%barrido%de%barridoAngulo
setColor(Color.red):%cambia%la%tinta%del%objeto%g%y%la%pone%de%color%rojo.%La%clase%Color%se
importa%de%awt:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%import%java.awt.*;
Cuando%se%actualiza%un%componente,%se%borra%su%aspecto%actual%y%seinvoca%paint(g).%El%borrado
previo%puede%producir%parpadeo%(flickering)%,por%lo%que%a%veces%el%mtodo%paint(g)%evita
hacerlo.
Sin%embargo,%la%actualizacin%puede%necesitar%hacer%el%borrado%previo(para%actualizar%el%fondo
del%componente,%por%ejemplo).%En%estos%casos%se%invoca%el%mtodo%paintComponent(g)%de%la
clase%JComponent,%que%permite%hacer%un%barrido%previo,%pero%usando%la%tcnica%del
doble%buffer%para%eliminar%el%parpadeo.
En%casos%como%los%anteriores%lo%que%se%hace%es%redefinir%el%mtodo%paintComponent(g)%en
lugar%del%mtodo%paint(g).
Por%ejemplo,%para%dibujar%la%cara%que%pintamos%antes,%pero%sobre%un%(j)panel%en%lugar%de%sobre%un%marco,
hacemos%lo%siguiente:
Se%declara%la%clase%PanelCara%que%extiende%la%clase%JPanel,%como%clase%(privada)%de%la%clase
MarcoCara%que%habamos%creado%antes
Se%redefine%el%mtodo%paintComponent(g)%usando%las%mismas%instrucciones%que%antes,%pero
llamando%inicialmente%a%super.paintComponent(g)
%%%%%%%%%%%%%%%%%%%%%%%public%void%paintComponent(Graphics%g)%{
%%%%%%%%%%%%%%%%%%%%%%%%%%super.paintComponent(g);...}
Cuando%el%contenido%de%un%marco%o%panel%cambia,%el%mtodo%repaint()%se%encarga%de%actualizar%el
contenedor%y%mostrarlo%por%pantalla,%invocando%implcitamente%el%mtodo%paint(g)%o%paintComponent(g).
Por%ejemplo,%para%aadir%un%botn%al%marco%que%mostraba%una%cara%sonriente%de%forma%que,%cuando%se
pulse,%la%cara%cambie%a%una%cara%eenojada,%basta%hacer%lo%siguiente:
Se%aade%a%contentPane%el%botn%cuyo%efecto%cambiar%la%sonrisa%de%la%cara
Se%aade%un%atributo%booleano%al%marco%que%indica%si%la%cara%sonre%o%no%
%%%%%%%%%%%%%%%%%%%private%boolean%sonrie=true;
Dentro%del%actionPerformed%del%boton%codeamos%lo%siguiente:
%%%%%%%%%%%%%%%%%%%sonrie=!sonrie;
%%%%%%%%%%%%%%%%%%%repaint();
El%mtodo%paintComponent(g)%para%pintar%el%panel%se%redefine%por%el%siguiente:
%%%%%%%%%%%%%%%%%%%public%void%paintComponent(Graphics%g)%{
%%%%%%%%%%%%%%%%%%%%super.paintComponent(g);
%%%%%%%%%%%%%%%%%%%%//Dibujo%de%la%cara%igual%que%antes,%salvo%la%boca
%%%%%%%%%%%%%%%%%%%%...
%%%%%%%%%%%%%%%%%%%%//Dibujo%de%la%boca
%%%%%%%%%%%%%%%%%%%%if%(sonrie)%g.drawArc(118,%125,%75,%30,%180,%180);
%%%%%%%%%%%%%%%%%%%%else%g.drawArc(118,%125,%75,%30,%180,%h180);
%%%%%%%%%%%%%%%%%%%%}
Dibujar sobre paneles
Base de Datos (Repaso)
JDBC: Conexin con Base de Datos
----------------HILOS----------------
Introduccin a Threads
Creacion de Threads
Manejo de Threads (Metodos)
Metodos Deprecados (Desaconsejados) - Threads -
Controlando los Threads (Ciclo de Vida)
Estados de un Thread
Planificacion de Threads (Prioridades)
Sincronizacion(Threads)
Ejemplo exclucion mutua - synchronized -
Ejemplo de sealizacin - wait() y notify() -
----------------- NETWORKING -----------------
Introduccion a Networking
Identificacion de Procesos(Networking)
Networking en Java(Sockets)
Implementacion en Java(Sockets)
Construccion de un servidor TCP/IP
Sockets Multicast
2012 (55) diciembre (2)
octubre (14)
junio (4)
mayo (28)La clase Graphics
JDBC: Conexin con Base de Datos
Base de Datos
La interfaz Grfica
Streams
Excepciones
Iteradores (Recorrido deContenedores)
Contenedores (Colecciones)
Conceptos Generales (Comparacinentre objetos)
Conceptos Generales (Wrappers detipos de dato pri...
Conceptos Generales (La claseSystem)
Conceptos Generales (La claseString)
Accesibilidad
La keyword Final
Paquetes
Interfaz
Clase Abstracta
Polimorfismo
Casteos
Herencia
Constructores y Destructores
Introduccin aOOP(Encapsulamiento)
Introduccin a OOP(Mtodos deinstancia y de clase...
Introduccin a OOP(Atributos deinstancia y de cla...
Introduccin a OOP (Clases yObjetos)
Netbeans (Lo bsico)
Sintaxis de Java (Comentarios)
Sintaxis de Java (Estructuras decontrol de flujo)...
Archivo del blog
03/03/14 20:39Todo Java: La clase Graphics
Pgina 3 de 4http://labojava.blogspot.com.es/2012/05/la-clase-graphics.html
Publicado%por%Martin%Gigena%en%18:38%
Etiquetas:%Graphics,%J2SE,%JAVA
Dibujar%texto
La%clase%Graphics%permite%dibujar%texto,%como%alternativa%al%texto%mostrado%en%los%componentes%JLabel,
JTextField%y%JTextArea.%El%mtodo%que%permite%graficar%texto%sobre%el%JFrame%es:
drawString(String%str,%int%x,%int%y);
Clase%Color
La%clase%java.awt.Color%encapsula%colores%utilizando%el%formato%RGB%(Red,%Green,%Blue).%Las%componentes
de%cada%color%primario%en%el%color%resultante%se%expresan%con%nmeros%enteros%entre%0%y%255,%siendo%0%la
intensidad%mnima%de%ese%color%y%255%la%mxima.%En%la%clase%Color%existen%constantes%para%colores
predeterminados%de%uso%frecuente:%black,%white,%green,%blue,%red,%yellow,%magenta,%cyan,%orange,%pink,
gray,%darkGray,%lightGray.
Presentacin%de%imgenes
Java%permite%incorporar%imgenes%de%tipo%GIF%y%JPEG%definidas%en%ficheros.%Se%dispone%para%ello%de%la%clase
java.awt.Image.%Para%cargar%una%imagen%hay%que%indicar%la%localizacin%del%archivo%y%cargarlo%mediante%el
mtodo%getImage().%Este%mtodo%existe%en%las%clases%java.awt.Toolkit.
Entonces,%para%cargar%una%imagen%hay%que%comenzar%creando%un%objeto%(o%una%referencia)%Image%y%llamar
al%mtodo%getImage()%(de%Toolkit);%Una%vez%cargada%la%imagen,%hay%que%representarla,%para%lo%cual%se
redefine%el%mtodo%paint()%para%llamar%al%mtodo%drawImage()%de%la%clase%Graphics.%Los%objetos%Graphics
pueden%mostrar%imgenes%a%travs%del%mtodo:%drawImage().%Dicho%mtodo%admite%varias%formas,%aunque
casi%siempre%hay%que%incluir%el%nombre%del%objeto%imagen%creado.
Clase%Image
Una%imagen%es%un%objeto%grfico%rectangular%compuesto%por%pixels%coloreados.%Cada%pixel%en%una%imagen
describe%un%color%de%una%particular%localizacin%de%la%imagen.
A%continuacin,%algunos%mtodos%de%la%clase%Image:
La%clase%Graphics%provee%el%mtodo%drawImage()%para%dibujar%imagenes;%este%mtodo%admite%varias
formas:
h%drawImage%(Image%i,%int%x,%int%y,%ImageObserver%o)
h%drawImage%(Image%i,int%x,int%y,int%width,int%height,ImageObserver%o)
Un%ejemplo%del%metodo%paint(Graphics%G)%para%traer%una%imagen%de%la%carpeta%raiz%es%el%siguiente:
%%%%%%%%%%%%%%%%%%%%public%void%paint%(Graphics%g)
%%%%%%%%%%%%%%%%%%%%{
%%%%%%%%%%%%%%%%%%%%super.paint(g);
%%%%%%%%%%%%%%%%%%%%Toolkit%t%=%Toolkit.getDefaultToolkit%();
%%%%%%%%%%%%%%%%%%%%Image%imagen%=%t.getImage%("imagen1.jpg");
%%%%%%%%%%%%%%%%%%%%g.drawImage%(imagen,%0,%0,%this);
%%%%%%%%%%%%%%%%%%%%}
+1 Recomendar esto en Google
1 comentario:
AnnimoAnnimo 29%de%abril%de%2013,%13:40
Disculpa% el% nos% podrias% colocar% el% ejemplo% completo% e% sdecir% con% codigo% y% visualizacion% de% lo
anterior.%gracias
Responder
abril (7)
Martin Gigena
Ver todo mi perfil
Datos personales
03/03/14 20:39Todo Java: La clase Graphics
Pgina 4 de 4http://labojava.blogspot.com.es/2012/05/la-clase-graphics.html
Entrada%ms%reciente Entrada%antiguaPgina%principal
Suscribirse%a:%Enviar%comentarios%(Atom)
Introduce tu comentario...
Comentar como: Cuenta de Google
PublicarPublicar
Vista previaVista previa
Con%la%tecnologa%de%Blogger.
Top Related