FileDocCategorySizeDatePackage
WatermarkTextField.javaAPI DocExample1163Mon Jan 09 11:01:58 GMT 2006None

WatermarkTextField.java

import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.imageio.*;
import java.awt.image.*;
import javax.swing.table.*;

// put a texture in the background

public class WatermarkTextField extends JTextField {
    BufferedImage img;
    TexturePaint texture;
    public WatermarkTextField(File file) throws IOException {
        super();
        img = ImageIO.read(file);
        Rectangle rect = new Rectangle(0,0,
                img.getWidth(null),img.getHeight(null));
        texture = new TexturePaint(img, rect);
        setOpaque(false);
    }
    
    public void paintComponent(Graphics g) {
        Graphics2D g2 = (Graphics2D)g;
        g2.setPaint(texture);
        g.fillRect(0,0,getWidth(),getHeight());
        super.paintComponent(g);
    }
    
    public static void main(String[] args) throws Exception {
        JFrame frame = new JFrame("Watermark JTextField Hack");
        
        JTextField textfield = new WatermarkTextField(new File("red.png"));
        textfield.setText("A Text Field");
        frame.getContentPane().add(textfield);
        frame.pack();
        frame.show();
    }
    
}