import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
import javax.swing.*;


public class FontTest extends Component {

   BufferedImage img;
   BufferedImage target = new BufferedImage(1000, 1000, BufferedImage.TYPE_INT_RGB);
    
  public static void main(String args[]) {
    JFrame f = new JFrame("TL TEST");
    f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    FontTest td = new FontTest();
    td.createTexturePaint();
    f.add("Center", td);
    f.pack(); f.setVisible(true);
}
  
  protected void createTexturePaint() {
      img = new BufferedImage(100, 100, BufferedImage.TYPE_INT_ARGB);
      Graphics2D g2d = (Graphics2D) img.getGraphics();
      g2d.setColor(Color.black);
      g2d.fillRect(0, 0, 100, 100);
  }

  public Dimension getPreferredSize() {
      return new Dimension(500,250);
  }

  public void paint(Graphics g) {  

      Graphics2D g2d = (Graphics2D) target.getGraphics();
      g2d.setColor(Color.white);
      g2d.fillRect(0, 0, getWidth(), getHeight());
      
      Font f = new Font("Serif", Font.PLAIN, 14);
      g.setFont(f);
      
      g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC, 0.01f));
      g2d.setRenderingHint(
              RenderingHints.KEY_TEXT_ANTIALIASING,
              RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_VBGR);
     g2d.setRenderingHint(
             RenderingHints.KEY_ANTIALIASING,
             RenderingHints.VALUE_ANTIALIAS_ON);
     
     
      g2d.setColor(Color.black);
      g2d.drawString("This text is painted with black color", 50, 50);
      
      g2d.setPaint(new TexturePaint(img, new Rectangle2D.Double(0, 0, 100, 100)));
      g2d.drawString("TexturePaint Text", 50, 150);
      
      g.drawImage(target, 0, 0, null);
  }
}
