Imagen de fondo

Mar
05 de Septiembre del 2003
Hola! Me gustaria poner una imagen de fondo (jpg) en un TextArea. De tal manera que se escriba por encima de esa imagen, pero la imagen sea visible todo el tiempo (aunque mas clarita)...¿alguien sabe como hacerlo? Gracias

DAGGER
05 de Septiembre del 2003
Aqui te dejo un ejemplo que realiza un efecto similar, no obstante este lo desarrolla extendiendo un JTextPane, debido a que para hacerlo con un TextPane deberia redefinir todo el contenido de los metodos para dibujar el componente y esto es algo engorroso.
espero que al menos pueda darte una idea de como lograrlo, mucha suerte

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class Test1 extends JFrame {
private MiTextArea texto;

public Test1() {
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}
});
texto = new MiTextArea();
this.getContentPane().add(texto);
}

public static void main(String args[]) {
Test1 mainFrame = new Test1();
mainFrame.setSize(400, 400);
mainFrame.setTitle("Test1");
mainFrame.setVisible(true);
}
}

class MiTextArea extends JTextArea{
private ImageIcon im= new ImageIcon("c:\argentina.jpg");

public void paint(Graphics g){
super.paint(g);
Graphics2D g2=(Graphics2D)g;
AlphaComposite ac = AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,0.1F);
g2.setComposite(ac);
g2.clipRect(0,0,this.getWidth(),this.getHeight());
g2.drawImage(im.getImage(),0,0,im.getIconWidth(),im.getIconHeight(),null);
}

public void update(Graphics g){
super.update(g);
}
}