TextRendering.java Source code

Java tutorial

Introduction

Here is the source code for TextRendering.java

Source

import java.awt.AlphaComposite;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class TextRendering extends JPanel {
    public void paint(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

        Dimension d = getSize();
        AffineTransform ct = AffineTransform.getTranslateInstance(d.width / 2, d.height * 3 / 4);
        g2.transform(ct);

        String s = "www.java2s.com";
        Font f = new Font("Serif", Font.PLAIN, 128);
        g2.setFont(f);

        int count = 6;
        for (int i = 1; i <= count; i++) {
            AffineTransform oldTransform = g2.getTransform();

            float ratio = (float) i / (float) count;
            g2.transform(AffineTransform.getRotateInstance(Math.PI * (ratio - 1.0f)));
            float alpha = ((i == count) ? 1.0f : ratio / 3);
            g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha));
            g2.drawString(s, 0, 0);

            g2.setTransform(oldTransform);
        }
    }

    public static void main(String[] args) {
        JFrame f = new JFrame();
        f.getContentPane().add(new TextRendering());
        f.setSize(800, 800);
        f.show();
    }
}