Foros del Web » Programación para mayores de 30 ;) » Java »

Mejorar un applet

Estas en el tema de Mejorar un applet en el foro de Java en Foros del Web. Hola amigos: He hecho un applet que funciona en mi ordenador (no muy bien), y que en otro foro me han dicho que no se ...
  #1 (permalink)  
Antiguo 25/03/2003, 06:25
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Mejorar un applet

Hola amigos:

He hecho un applet que funciona en mi ordenador (no muy bien), y que en otro foro me han dicho que no se ve...

Está aquí ...

La razón es poner las letras con un gif de relleno, pero parpadea. El código lo he mezclado un poco con cosas que vi por ahí:

Código PHP:
/*
    mensaje Java con imagen
*/
import java.applet.Applet;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.awt.font.*;
public class 
mensajeYimagen2 extends Applet    {
    
String mensajecolorFondodibujo;
    
Color fondo;
    
Image img;

    public 
void init()    {
        
mensaje getParameter("mensaje");
        if (
mensaje == null)    mensaje "¡Hola mundo!";
        
colorFondo getParameter("fondo");
        if (
colorFondo == nullfondo = new Color(255,255,0,255);
        else 
fondo Color.decode(colorFondo);

        
dibujo getParameter("imagen");
        if (
dibujo != null)    {
            
img getImage(getDocumentBase(), dibujo);
            try {
                
MediaTracker tracker = new MediaTracker(this);
                
tracker.addImage(img0);
                
tracker.waitForID(0);
            }
                catch( 
Exception e ) {
                
e.printStackTrace();
            }
        }
    }

    public 
void paintGraphics g ) {
        
Graphics2D g2 = (Graphics2D)g;

        
// Características de presentación del renderizado
        
g2.setRenderingHintRenderingHints.KEY_ANTIALIASING,
            
RenderingHints.VALUE_ANTIALIAS_ON );
        
g2.setRenderingHintRenderingHints.KEY_RENDERING,
            
RenderingHints.VALUE_RENDER_QUALITY );

          
setBackground(fondo);
        
FontRenderContext contextoFuente g2.getFontRenderContext();
        
Font fuente = new Font("Arial Black"Font.BOLD30);
        
String texto = new String(mensaje);
        
TextLayout tl = new TextLayout(textofuentecontextoFuente );
        
AffineTransform transformacion = new AffineTransform();
        
transformacion.setToTranslation10,45 );
        
Shape figura tl.getOutlinetransformacion );
        
Rectangle rect figura.getBounds();
        
g2.setColorColor.blue );
        
g2.drawfigura );
        
g2.setClipfigura );
        
g2.drawImage(imgrect.xrect.yrect.widthrect.heightthis );
    }

Alguien sabe cómo quitarle el parpadeo...

Saludos
  #2 (permalink)  
Antiguo 03/08/2004, 17:38
Avatar de xavivars  
Fecha de Ingreso: enero-2002
Ubicación: Benissa - la Marina Alta
Mensajes: 212
Antigüedad: 22 años, 3 meses
Puntos: 1
Acabo de leer este mensaje buscando informacion sobre otra cosa, y despues de verlo se me ha ocurrido: porque no hacer un backbuffer?
  #3 (permalink)  
Antiguo 12/08/2004, 12:25
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 10 meses
Puntos: 10
Es exactamente lo que necesitas, si ocupas doble buffer el parpadeo desaparece, que sucede??
Que asi como lo haces esta pintando a medida que vas cargando, en cambio con el doble buffer, primero carga las imagenes, y luego las pinta, esto elimina el parpadeo por completo.

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:28.