Todo Java: La Clase Graphics

4

Click here to load reader

Transcript of Todo Java: La Clase Graphics

  • 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.