import java.awt.*; import java.awt.geom.*; import java.awt.font.*; import java.awt.event.*; import java.text.AttributedString; import java.text.AttributedCharacterIterator; public class MakeImage extends Canvas { private Image img; int x=0, y=0, c=0; Shape shape; Rectangle r; TextHitInfo hit, hit2; TextLayout tl; ImageGraphicAttribute theImage; public MakeImage() { setBackground(Color.white); img = getToolkit().getImage("../Art/sky_star.gif"); try { MediaTracker tracker = new MediaTracker(this); tracker.addImage(img, 0); tracker.waitForID(0); } catch (Exception e) {} } public void paint(Graphics g) { Graphics2D g2; g2 = (Graphics2D) g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); Font f = new Font("Times",Font.BOLD, 24); AttributedString ats = new AttributedString("The Starry Night"); ImageGraphicAttribute iga = new ImageGraphicAttribute(img, (int) BOTTOM_ALIGNMENT); ats.addAttribute(TextAttribute.CHAR_REPLACEMENT, iga, 4, 5); ats.addAttribute(TextAttribute.CHAR_REPLACEMENT, iga, 11, 12); ats.addAttribute(TextAttribute.FONT, f, 0, 18); AttributedCharacterIterator iter = ats.getIterator(); FontRenderContext frc = g2.getFontRenderContext(); tl = new TextLayout(iter, frc); g2.setColor(Color.red); tl.draw(g2, (float)20, (float)30); } public static void main(String s[]) { WindowListener l = new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} public void windowClosed(WindowEvent e) {System.exit(0);} }; Frame f = new Frame("2D Text"); f.addWindowListener(l); f.add("Center", new MakeImage()); f.pack(); f.setSize(new Dimension(400, 300)); f.show(); } }