Escolar Documentos
Profissional Documentos
Cultura Documentos
Métodos Abstractos(manejo de
teclas)
Soporte de dispositivo puntero:
boolean hasPointerEvents(): Posee?
boolean hasPointerMotionEvents():
Detecta?
Si
posee detección de eventos
(métodos abstractos):
Una pantalla Canvas no posee la
capacidad por sí misma de restaurar su
estado en caso de interrumpirse la
ejecución de la aplicación para, por
ejemplo, avisar de una llamada
entrante.
Respuesta:
hideNotify(): antes de ocurrir el evento
(incluir código necesario para salvar la
información actual)
Funciones del API de bajo nivel:
Controlar los eventos de bajo nivel.
Controlar qué aparece en pantalla.
Cambio de origen:
Método translate(int x, int y) de la clase
Graphics.
Existen dos métodos útiles:
boolean Display.isColor(): true=color,
false=gris.
int Display.numColors(): Numero de
colores o grises
Arcos
Simple: g.drawArc(x1,y1,x2,y2,ѳ°1, ѳ°2 );
Relleno: g.fillArc(x1,y1,x2,y2,ѳ°1, ѳ°2 );
Inmutables
Image img = createImage(“foto.png”);
Se crean a partir de un mapa de bits.
No se puede variar su aspecto.
Mutables
Image img =
Image.createImage(75,25);
Se trabaja sobre una matriz de puntos.
Podemos crear, modificar, etc. La
imagen deseada
Mostrar imagen
Graphics.drawImage(imagen,x,y,punto
Double buffering:
Elimina el parpadeo al actualizar la
pantalla.
Clave: actualizar las gráficas en
memoria principal y volcar a pantalla.
boolean isDoubleBuffered()
▪ true: Dispositivo utiliza la técnica.
▪ false: Hay que implementar el double buffer.
1) Crear una imagen mutable del tamaño de la
pantalla
Image pantalla2;
if(!isBuffered()){
pantalla2=Image.createImage(getWidth(),
getHeight());
…}
2) Implementar paint(Graphics g)
adecuadamente
protected void paint(Graphics g){
Graphics pantalla1 = g;
g= pantalla.getGraphics();
//actualizar elementos gráficos sobre g …
//volcar a la pantalla para visualizar …
Clipping
Clave: Actualizar solo la parte que se haya
modificado.
Se puede definir una región que limíte qué
parte de la pantalla se pintará al llamar a
paint()
▪ void setClip(int x, int y, int ancho, int alto)
Solo puede existir una zona de clipping por
cada objeto Graphics.
Otros métodos: