WatermarkTextField.java Source code

Java tutorial

Introduction

Here is the source code for WatermarkTextField.java

Source

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.TexturePaint;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JTextField;

public class WatermarkTextField extends JTextField {
    BufferedImage img;

    TexturePaint texture;

    public WatermarkTextField(File file) {
        super();
        try {
            img = ImageIO.read(file);
        } catch (IOException e) {
            e.printStackTrace();
        }
        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) {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JTextField textfield = new WatermarkTextField(new File("waterMarkImage.png"));
        textfield.setText("www.java2s.com");
        frame.getContentPane().add(textfield);
        frame.pack();
        frame.setVisible(true);
    }

}