Вы находитесь на странице: 1из 16

Tpicos Selectos de Programacin

UNIDAD I.- Elementos de Interfaces Grficas


___________________________________________________________________
LECCIN 1.3.- Comptaci!n "rfica
___________________________________________________________________
1.3.1.-#istema de coordenadas
Para ubicar los objetos grficos se utiliza un sistema de coordenadas
Espacio del dispositivo: Es el espacio de referencia del dispositivo de despliegue:
Rafael Rivera Lpez
1
Tpicos Selectos de Programacin
1.3.$.- Conte%to Grfico
La parte interna de cualquier componente se conoce como conteto grfico!
El conteto grfico es un lienzo donde se pueden "acer trazos!
Todo componente puede modificar el conteto grfico usando:
el m#todo paint$%rap"ics g& para componentes '(T!
el m#todo paint)omponent$%rap"ics g& para componentes S*ing!
En +ava se utiliza un objeto como motor de interpretacin de los trazos en el conteto
grfico $tambi#n se le conoce como broc"a&! La broc"a es un objeto de la clase:
java!a*t!%rap"ics que contiene m#todos bsicos para interpretar primitivas grficas ,
controlar los modos de despliegue!
java!a*t!%rap"ics-. que es una forma mejorada!
El m#todo get%rap"ics$& sirve para generar un objeto de la clase %rap"ics!
1.3.3.- &'todo paint
El m#todo paint$& es invocado automticamente cuando se cambia el tama/o de la
ventana!
)uando se est dibujando sobre el conteto grfico0 puede ser necesario repintar el rea0
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 pantalla0 para luego llamar a
paint$&!
Rafael Rivera Lpez
2
Tpicos Selectos de Programacin
1.3.(.- )a*a.a+t.Grap,ics
void set)olor$)olor c&
void set1ont$1ont f&
void set23R4ode$)olor c&
void setPaint4ode$&
void translate$int 0 int ,&
void dra*String$String str0 int 0 int ,&
void dra*Line$int 50 int ,50 int -0 int ,-&
void dra*Rect$int 50 int ,50 int *idt"0 int "eig"t&
void dra*3val$int 50 int ,50 int *idt"0 int "eig"t&
void dra*'rc$int 50 int ,50 int *idt"0 int "eig"t0 int start0 int arc&
void dra*RoundRect$int 50 int ,50 int *idt"0 int "eig"t0 int arc(0 int arc6&
void dra*Pol,gon$int78 Points0 int78 ,Points0 int nPoints&
void fillRect$int 50 int ,50 int *idt"0 int "eig"t&
void fill3val$int 50 int ,50 int *idt"0 int "eig"t&
void fill'rc$int 50 int ,50 int *idt"0 int "eig"t0 int start0 int arc&
void fillRoundRect$int 50 int ,50 int *idt"0 int "eig"t0 int arc(0 int arc6&
void fillPol,gon$int78 Points0 int78 ,Points0 int nPoints&
1.3.-.- Colores. /entes e Im"enes
Color
Para definir un nuevo color con el cual se dibuje en el lienzo0 se utiliza el m#todo
set)olor$)olor c&!
Se pueden utilizar los colores definidos en la clase )olor $red0 magenta0 c,an0 blac90 !!!&
Rafael Rivera Lpez
3
Tpicos Selectos de Programacin
g!set)olor$)olor!red&!
Se pude crear un color a partir de sus componentes rojo0 verde , azul
g!set)olor$ne* )olor$rojo0verde0azul&&!
Los componentes de color tienen valores entre : , -;;!
/ont
Para definir un nuevo tipo de letra con el cual se escriba en el lienzo0 se utiliza el m#todo
set1ont$1ont f&!
Se crea una fuente a trav#s del constructor: 1ont$fuente0tipo0puntos&!
Se pueden utilizar las fuentes cargadas en la mquina o cinco tipos de letras definidas
como base $SansSerif0 Serif0 4onospaced0 .ialog , .ialog<nput&
El tipo puede ser: =3L.0 <T'L<)0 PL'<> o combinaciones
El m#todo dra*String$String s0 int 0 int ,& permite escribir un teto en el conteto grfico!
Ima"e
Las imgenes guardadas en un dispositivo se pueden colocar en el conteto grfico
utilizando un objeto de la clase <mage!
Se requiere utilizar el m#todo getTool9it$& que sirve como enlace entre el conteto grfico
, la plataforma!
El m#todo dra*<mage$& despliega la imagen
Rafael Rivera Lpez
4
Tpicos Selectos de Programacin
package dialogossimples;
import javax.swing.*;
import java.awt.*;
public class Contexto1 extends JFrame{

public Contexto1({
super(!Colores" Fuentes e #m$genes!;
set%i&e('(("'((;
set)ocation(1(("1((;
getContent*ane(.set+ackground(Color.c,an;
add(new -i*anel(;
set.isible(true;
/
/
class -i*anel extends J*anel{

public void paint(0rap1ics g{
Font 21 3 new Font(!4rial!"Font.+5)6"7';
Font 27 3 new Font(!Courier 8ew!"Font.+5)6 9 Font.#:4)#C"1;;
%tring arc1ivo 3 !java<1.jpg!;
#mage image 3 get:oolkit(.get#mage(arc1ivo;
g.setColor(Color.blue;
g.draw%tring(!-ensaje en a&ul!" 1((" 1(;
g.setColor(new Color(17'"7((";(;
g.draw%tring(!-ensaje en un nuevo color!" 1((" '(;
g.setFont(21;
g.draw%tring(!-ensaje en 4rial!" 1((" ;(;
g.setFont(27;
g.draw%tring(!-ensaje en Courier!" 1((" 17(;
g.draw#mage(image" 1(("1=(" t1is;

/
/
Rafael Rivera Lpez
5
Tpicos Selectos de Programacin
1.3.0.- L1neas. 2ectn"los 3 *alos
Se pueden trazar primitivas grficas de dos formas:
dra*222$&: Solo se traza el contorno!
fill222$&: Se rellena el contenido del dibujo!
void dra*Line$int 50 int ,50 int -0 int ,-&
void dra*Rect$int 50 int ,50 int *idt"0 int "eig"t&
void dra*3val$int 50 int ,50 int *idt"0 int "eig"t&
void dra*RoundRect$int 50 int ,50 int *idt"0 int "eig"t0 int arc(0 int arc6&
void dra*?.Rect$ int 0 int ,0 int *idt"0 int "eig"t0 boolean b&
void fillRect$int 50 int ,50 int *idt"0 int "eig"t&
void fill3val$int 50 int ,50 int *idt"0 int "eig"t&
void fillRoundRect$int 50 int ,50 int *idt"0 int "eig"t0 int arc(0 int arc6&
void fill?.Rect$ int 0 int ,0 int *idt"0 int "eig"t0 boolean b&
RoundRect
3val
Rafael Rivera Lpez
6
Tpicos Selectos de Programacin
package dialogossimples;
import javax.swing.*;
import java.awt.*;
public class *rimitivas1 extends JFrame{

public *rimitivas1({
super(!)ineas" >ect$ngulos , ?valos!;
set%i&e('(("'((;
set)ocation(1(("1((;
getContent*ane(.set+ackground(Color.w1ite;
add(new *anel1(;
set.isible(true;
/
/

class *anel1 extends J*anel{

public void paint(0rap1ics g{
g.setColor( Color.>@6 ;
g.draw)ine( A" B(" B;(" B( ;
g.setColor( Color.+)C@ ;
g.draw>ect( A" '(" D(" AA ;
g.2ill>ect( 1((" '(" D(" AA ;
g.setColor( Color.CE48 ;
g.2ill>ound>ect( 1DA" '(" D(" AA" A(" A( ;
g.draw>ound>ect( 7D(" '(" D(" AA" 7(" 7( ;

g.setColor( Color.E@))5F ;
g.drawB6>ect( A" 1((" D(" AA" true ;
g.2illB6>ect( 1((" 1((" D(" AA" 2alse ;

g.setColor( Color.-40@8:4 ;
g.draw5val( 1DA" 1((" D(" AA ;
g.2ill5val( 7D(" 1((" D(" AA ;
/
/
Rafael Rivera Lpez
7
Tpicos Selectos de Programacin
1.3.4.- Arcos
void dra*'rc$int 50 int ,50 int *idt"0 int "eig"t0 int start0 int arc&
void fill'rc$int 50 int ,50 int *idt"0 int "eig"t0 int start0 int arc&
package dialogossimples;
import javax.swing.*;
import java.awt.*;
public class *rimitivas7 extends JFrame{

public *rimitivas7({
super(!4rcos!;
set%i&e('(("'((;
set)ocation(1(("1((;
getContent*ane(.set+ackground(Color.w1ite;
add(new *anel7(;
set.isible(true;
/
/

class *anel7 extends J*anel{

public void paint(0rap1ics g{
g.setColor( Color.>@6 ;
g.draw>ect( 1A" BA" ;(" ;( ;
g.setColor( Color.+)4CG ;
Rafael Rivera Lpez
8
Tpicos Selectos de Programacin
g.draw4rc( 1A" BA" ;(" ;(" (" B=( ;
g.setColor( Color.>@6 ;
g.draw>ect( 1((" BA" ;(" ;( ;
g.setColor( Color.+)4CG ;
g.draw4rc( 1((" BA" ;(" ;(" (" 11( ;
g.setColor( Color.>@6 ;
g.draw>ect( 1;A" BA" ;(" ;( ;
g.setColor( Color.+)4CG ;
g.draw4rc( 1;A" BA" ;(" ;(" (" <7H( ;
g.2ill4rc( 1A" 17(" ;(" '(" (" B=( ;
g.2ill4rc( 1((" 17(" ;(" '(" 7H(" <D( ;
g.2ill4rc( 1;A" 17(" ;(" '(" (" < 7H( ;
/
/
1.3.5.- 6ol1"onos
void dra*Pol,gon$int78 Points0 int78 ,Points0 int nPoints&
void fillPol,gon$int78 Points0 int78 ,Points0 int nPoints&
package dialogossimples;
import javax.swing.*;
import java.awt.*;
public class *rimitivasB extends JFrame{

public *rimitivasB({
super(!*olIgonos!;
set%i&e('(("'((;
set)ocation(1(("1((;
getContent*ane(.set+ackground(Color.w1ite;
add(new *anelB(;
set.isible(true;
/
/

class *anelB extends J*anel{

public void paint(0rap1ics g{
int x.aluesJK 3 { 7(" '(" A(" B(" 7(" 1A /;
int ,.aluesJK 3 { A(" A(" =(" ;(" ;(" =( /;
Rafael Rivera Lpez
9
Tpicos Selectos de Programacin
*ol,gon pol,gon1 3 new *ol,gon( x.alues" ,.alues" = ;
g.draw*ol,gon( pol,gon1 ;
int x.alues7JK 3 { H(" D(" 1((" ;(" H(" =A" =( /;
int ,.alues7JK 3 { 1((" 1((" 11(" 11(" 1B(" 11(" D( /;
g.draw*ol,line( x.alues7" ,.alues7" H ;
int x.aluesBJK 3 { 17(" 1'(" 1A(" 1D( /;
int ,.aluesBJK 3 { '(" H(" ;(" =( /;

g.2ill*ol,gon( x.aluesB" ,.aluesB" ' ;
*ol,gon pol,gon7 3 new *ol,gon(;
pol,gon7.add*oint( 1=A" 1BA ;
pol,gon7.add*oint( 1HA" 1A( ;
pol,gon7.add*oint( 7H(" 7(( ;
pol,gon7.add*oint( 7((" 77( ;
pol,gon7.add*oint( 1B(" 1;( ;
g.2ill*ol,gon( pol,gon7 ;
/
/
1.3.7.- )a*a.a+t.Grap,ics$D
Es mas sofisticado que %rap"ics ,a que las primitivas grficas son objetos!
void dra*$S"ape s&
void fill$S"ape s&
void setTransform$'ffineTransform T&
void transform$'ffineTransform T&
void setPaint$Paint p&
void setStro9e$Stro9e s&
void clip$S"ape s&
void set)omposite$)omposite c&
void addRendering6ints$4ap "ints&
Rafael Rivera Lpez
10
Tpicos Selectos de Programacin
1.3.18.- 9:)etos "rficos
@n objeto grfico se puede dibujar si implementa la interfaz S"ape!
Los m#todos dra*$& , fill$& reciben un objeto S"ape!
Rafael Rivera Lpez
11
Tpicos Selectos de Programacin
Clases A:stractas;
Line-.0 Auad)urve-.0 )ubic)urve-.0 Rectangle-.0 RoundRectangle-.0 'rc-.0 Ellipse-.
)ada una tiene dos subclases internas 2!.ouble , 2!1loat que representan las coordenadas
utilizando tipos double o float
)ine76 line 3 new )ine76.6ouble(x1" ,1" x7" ,7;
2ectn"los;
>ectangle76 ri 3 new >ectangle(7("B("1((";(;
>ectangle76 rd 3 new >ectangle76.6ouble(7(.("B(.("1((.(";(.(;
>ectangle76 r2 3 new >ectangle76.Float(7(2"B(2"1((2";(2;
>ound>ectangle76 rrect 3 new >ound>ectangle76.6ouble(7("B("1((";("A"A;
@llipse76 ellipse 3 new @llipse76.Float(7(2" B(2" 1((2" ;(2;
Arco;
Es un arco elBptico dibujado dentro de sus dimensiones!
La porcin del arco se define por el ngulo inicial , desplazamiento del ngulo $en
grados&!
El tipo de arco: 3PE>0 )63R.0 P<E!
4rc76 arc 3 new 4rc76.Float(7(2" B(2" 1((2" ;(2" B(2" 'A2" 4rc76.*#@;
'qui se define un arco de ?: a C; grados!
Rafael Rivera Lpez
12
Tpicos Selectos de Programacin
package ejemplosgrap1ics7d;
import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;
public class 0ra2icos extends J*anel{


public void paintComponent(0rap1ics g{
0rap1ics76 g7 3 (0rap1ics76g;
g7.translate(A"A;
)ine76 linea1 3 new )ine76.6ouble(<A"("='("(;
g7.draw(linea1;
)ine76 linea7 3 new )ine76.6ouble(("<A"("';(;
g7.draw(linea7;
g7.setColor(Color.+)C@;
4rc76 arc;
2or(int i3(;iLB;iMM{
arc 3 new 4rc76.Float('((2"1((2"7((2"7((2"
(2M17(2*i"'(2"4rc76.5*@8;
g7.draw(arc;
arc 3 new 4rc76.Float('((2"1((2"7((2"7((2"
'(2M17(2*i"'(2"4rc76.*#@;
g7.2ill(arc;
arc 3 new 4rc76.Float('((2"1((2"7((2"7((2"
;(2M17(2*i"'(2"4rc76.CN5>6;
g7.draw(arc;
/
/
/
Rafael Rivera Lpez
13
Tpicos Selectos de Programacin
1.3.11.- Interfa< 6aint
La interfaz Paint es una generalizacin de color!
Se utiliza el m#todo setPaint$Paint p&!
Clase Gredient6aint
.efine el pintado usando varios colores!
Se define con dos puntos , dos colores! El color cambia del primero al segundo del punto
inicial al final!
Este cambio puede ser cBclico o no
'ciclico:
%radientPaint$float 50 float ,50 )olor c50 float -0 float ,-0 )olor c-&D
)Bclico o acBclico:
%radientPaint$float 50 float ,50 )olor c50 float -0 float ,-0 )olor c-0 boolean c,cl&D
Rafael Rivera Lpez
14
Tpicos Selectos de Programacin
Clase =e%tre6aint
E .efine una tetura para un objeto grfico!
E TeturePaint$=uffer<mage image0 Rectangle-. anc"or&D
package ejemplosgrap1ics7d;
import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
import javax.imageio.*;
import java.io.*;
public class Clase*aint extends J*anel{
public void paintComponent(0rap1ics g{
+u22ered#mage image 3 null;
tr,{
image 3 #mage#5.read(new File(!Forld.jpg!;
/ catc1(#5@xception e{
%,stem.err.println(!@rror!;
/
0rap1ics76 g7 3 (0rap1ics76g;
0radient*aint gp 3 new 0radient*aint(1(("A("Color.w1ite"
1A("A(" Color.gra," true;
g7.set*aint(gp;
g7.2ill>ect(1((" '(" B((" 7(;
gp 3 new 0radient*aint(1(("A("Color.w1ite"
1A(" A(" Color.gra," 2alse;
g7.set*aint(gp;
g7.2ill>ect(1((" ;(" B((" 7(;

:exture*aint tp 3 new :exture*aint(image"
new >ectangle76.6ouble(1((" 1(("
image.getFidt1("image.getNeig1t(;
g7.set*aint(tp;
%1ape ellipse 3 new @llipse76.6ouble(1((" 1(("
image.getFidt1("image.getNeig1t(;
g7.2ill(ellipse;
Rafael Rivera Lpez
15
Tpicos Selectos de Programacin
0radient*aint paint 3 new 0radient*aint(1((" B((" Color.w1ite"
'((" '((" Color.black;
g7.set*aint(paint;
Font 2ont 3 new Font(!%eri2!" Font.+5)6" 1'';
g7.setFont(2ont;
g7.draw%tring(!Java!" 1((" '((;
/
/
Rafael Rivera Lpez
16

Вам также может понравиться