PINTAR EN EL APPLET en JAVA
Se utiliza el método repaint, que obliga a volver a pintar la applet. A su vez repaint llama a update, con lo cual se actualiza la applet. Tenemos cuatro maneras de utilizar el método repaint.
repaint(); llama al método repaint.
repaint(tiempo); cada x tiempo se actualiza. Mantiene ritmo en las animaciones.
repaint(x1,y1,x2,y2); actualiza únicamente el área que delimitamos.
repaint(tiempo,x1,y1,x2,y2); es una mezcla de las 2 anteriores.
EJEMPLO: Texto danzando a lo loco.
import java.awt.*; import java.applet.*; public class text extends Applet implements Runnable { Thread parar; int x_coord = 0, y_coord = 0; public void start() { parar = new Thread(this); parar.start(); } public void run() { for(;;){ try {Thread.sleep(100);} catch (InterruptedException e){} repaint(); } } public void paint(Graphics g) { x_coord = (int) (Math.random()*10+15*10); y_coord = (int) (Math.random()*10+36); g.drawString(“H O L A”,x_coord,y_coord); } }
EJEMPLO: Letras danzando.
import java.awt.*; import java.applet.*; public class text extends Applet implements Runnable { char separado[]; String s = "H o l a B u e n a s"; Thread parar = null; int i; int x_coord = 0, y_coord = 0; public void init() { separado = new char [s.length()]; s.getChars(0,s.length(),separado,0); resize((s.length()+1)*15, 50); setFont(new Font("TimesRoman",Font.BOLD,36)); } public void start() { parar = new Thread(this); parar.start(); } public void run() { for(;;) { try {Thread.sleep(100);} catch (InterruptedException e){} repaint(); } } public void paint(Graphics g) { for(i=0;i<s.length();i++) { x_coord = (int) (Math.random()*10+15*i); y_coord = (int) (Math.random()*10+36); g.drawChars(separado, i,1,x_coord,y_coord); } } } //fin de la clase.
EJEMPLO: Creación de un reloj.
import java.awt.*; import java.applet.*; import java.util.Date; public class re extends Applet implements Runnable { Thread tiempo; public void paint(Graphics g) { String today; Date dat = new Date(); Font F = new Font("Arial", Font.PLAIN, 24); g.setFont(F); today = dat.toLocaleString(); g.drawString(today, 5,20); } public void start() { tiempo = new Thread(this); tiempo.start(); } public void run() { for(;;) { repaint(); pausa(1000); } } public void pausa(int tempo){ try{Thread.sleep(tempo);} catch(InterruptedException e){} } }//fin de la clase
0 comentarios