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 mensaje, colorFondo, dibujo;
Color fondo;
Image img;
public void init() {
mensaje = getParameter("mensaje");
if (mensaje == null) mensaje = "¡Hola mundo!";
colorFondo = getParameter("fondo");
if (colorFondo == null) fondo = 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(img, 0);
tracker.waitForID(0);
}
catch( Exception e ) {
e.printStackTrace();
}
}
}
public void paint( Graphics g ) {
Graphics2D g2 = (Graphics2D)g;
// Características de presentación del renderizado
g2.setRenderingHint( RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON );
g2.setRenderingHint( RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY );
setBackground(fondo);
FontRenderContext contextoFuente = g2.getFontRenderContext();
Font fuente = new Font("Arial Black", Font.BOLD, 30);
String texto = new String(mensaje);
TextLayout tl = new TextLayout(texto, fuente, contextoFuente );
AffineTransform transformacion = new AffineTransform();
transformacion.setToTranslation( 10,45 );
Shape figura = tl.getOutline( transformacion );
Rectangle rect = figura.getBounds();
g2.setColor( Color.blue );
g2.draw( figura );
g2.setClip( figura );
g2.drawImage(img, rect.x, rect.y, rect.width, rect.height, this );
}
}
Saludos