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.java2java.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();
}
}
|