<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2F2D_Graphics_GUI%2FTexture</id>
		<title>Java/2D Graphics GUI/Texture - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2F2D_Graphics_GUI%2FTexture"/>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java/2D_Graphics_GUI/Texture&amp;action=history"/>
		<updated>2026-04-05T04:22:34Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://jexp.ru/index.php?title=Java/2D_Graphics_GUI/Texture&amp;diff=8183&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java/2D_Graphics_GUI/Texture&amp;diff=8183&amp;oldid=prev"/>
				<updated>2010-06-01T06:56:07Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 06:56, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://jexp.ru/index.php?title=Java/2D_Graphics_GUI/Texture&amp;diff=8182&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java/2D_Graphics_GUI/Texture&amp;diff=8182&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:46Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== A texture is a bitmap image applied to a shape ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;  &lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.Graphics2D;&lt;br /&gt;
import java.awt.Rectangle;&lt;br /&gt;
import java.awt.TexturePaint;&lt;br /&gt;
import java.awt.image.BufferedImage;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import javax.imageio.ImageIO;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
public class Textures extends JPanel {&lt;br /&gt;
  BufferedImage s;&lt;br /&gt;
  public Textures() {&lt;br /&gt;
    try {&lt;br /&gt;
      s = ImageIO.read(this.getClass().getResource(&amp;quot;s.png&amp;quot;));&lt;br /&gt;
    } catch (IOException e) {&lt;br /&gt;
      e.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void paintComponent(Graphics g) {&lt;br /&gt;
    super.paintComponent(g);&lt;br /&gt;
    Graphics2D g2d = (Graphics2D) g;&lt;br /&gt;
    TexturePaint slatetp = new TexturePaint(s, new Rectangle(0, 0, 90, 60));&lt;br /&gt;
    g2d.setPaint(slatetp);&lt;br /&gt;
    g2d.fillRect(10, 15, 90, 60);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;Textures&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    frame.add(new Textures());&lt;br /&gt;
    frame.setSize(360, 120);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A texture is a bitmap image applied to the surface in computer graphics. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;  &lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.Graphics2D;&lt;br /&gt;
import java.awt.Rectangle;&lt;br /&gt;
import java.awt.TexturePaint;&lt;br /&gt;
import java.awt.image.BufferedImage;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.net.URL;&lt;br /&gt;
import javax.imageio.ImageIO;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
public class Textures extends JPanel {&lt;br /&gt;
  public void paintComponent(Graphics g) {&lt;br /&gt;
    super.paintComponent(g);&lt;br /&gt;
    Graphics2D g2d = (Graphics2D) g;&lt;br /&gt;
    g2d.setColor(new Color(212, 212, 212));&lt;br /&gt;
    g2d.drawRect(10, 15, 90, 60);&lt;br /&gt;
    BufferedImage bimage1 = null;&lt;br /&gt;
    URL url1 = ClassLoader.getSystemResource(&amp;quot;a.png&amp;quot;);&lt;br /&gt;
    try {&lt;br /&gt;
      bimage1 = ImageIO.read(url1);&lt;br /&gt;
    } catch (IOException ioe) {&lt;br /&gt;
      ioe.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
    Rectangle rect1 = new Rectangle(0, 0, bimage1.getWidth(), bimage1.getHeight());&lt;br /&gt;
    TexturePaint texture1 = new TexturePaint(bimage1, rect1);&lt;br /&gt;
    g2d.setPaint(texture1);&lt;br /&gt;
    g2d.fillRect(10, 15, 90, 60);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Textures rects = new Textures();&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;Textures&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    frame.add(rects);&lt;br /&gt;
    frame.setSize(360, 210);&lt;br /&gt;
    frame.setLocationRelativeTo(null);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Draw text along a curve ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;  &lt;br /&gt;
import java.awt.Font;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.Graphics2D;&lt;br /&gt;
import java.awt.RenderingHints;&lt;br /&gt;
import java.awt.Shape;&lt;br /&gt;
import java.awt.font.FontRenderContext;&lt;br /&gt;
import java.awt.font.GlyphVector;&lt;br /&gt;
import java.awt.geom.AffineTransform;&lt;br /&gt;
import java.awt.geom.Point2D;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
public class RollingText extends JPanel {&lt;br /&gt;
  public void paint(Graphics g) {&lt;br /&gt;
    Graphics2D g2 = (Graphics2D) g;&lt;br /&gt;
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,&lt;br /&gt;
        RenderingHints.VALUE_ANTIALIAS_ON);&lt;br /&gt;
    String s = &amp;quot;Java Source and Support.&amp;quot;;&lt;br /&gt;
    Font font = new Font(&amp;quot;Serif&amp;quot;, Font.PLAIN, 24);&lt;br /&gt;
    FontRenderContext frc = g2.getFontRenderContext();&lt;br /&gt;
    g2.translate(40, 80);&lt;br /&gt;
    GlyphVector gv = font.createGlyphVector(frc, s);&lt;br /&gt;
    int length = gv.getNumGlyphs();&lt;br /&gt;
    for (int i = 0; i &amp;lt; length; i++) {&lt;br /&gt;
      Point2D p = gv.getGlyphPosition(i);&lt;br /&gt;
      double theta = (double) i / (double) (length - 1) * Math.PI / 4;&lt;br /&gt;
      AffineTransform at = AffineTransform.getTranslateInstance(p.getX(),&lt;br /&gt;
          p.getY());&lt;br /&gt;
      at.rotate(theta);&lt;br /&gt;
      Shape glyph = gv.getGlyphOutline(i);&lt;br /&gt;
      Shape transformedGlyph = at.createTransformedShape(glyph);&lt;br /&gt;
      g2.fill(transformedGlyph);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    JFrame f = new JFrame(&amp;quot;RollingText v1.0&amp;quot;);&lt;br /&gt;
    f.getContentPane().add(new RollingText());&lt;br /&gt;
    f.setSize(600, 300);&lt;br /&gt;
    f.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Set Text Attribute ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;  &lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.Font;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.Graphics2D;&lt;br /&gt;
import java.awt.Image;&lt;br /&gt;
import java.awt.MediaTracker;&lt;br /&gt;
import java.awt.Toolkit;&lt;br /&gt;
import java.awt.event.WindowAdapter;&lt;br /&gt;
import java.awt.event.WindowEvent;&lt;br /&gt;
import java.awt.font.FontRenderContext;&lt;br /&gt;
import java.awt.font.GraphicAttribute;&lt;br /&gt;
import java.awt.font.ImageGraphicAttribute;&lt;br /&gt;
import java.awt.font.ShapeGraphicAttribute;&lt;br /&gt;
import java.awt.font.TextAttribute;&lt;br /&gt;
import java.awt.font.TextLayout;&lt;br /&gt;
import java.awt.geom.GeneralPath;&lt;br /&gt;
import java.awt.image.BufferedImage;&lt;br /&gt;
import java.text.AttributedCharacterIterator;&lt;br /&gt;
import java.text.AttributedString;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
public class AttributesApp extends JPanel {&lt;br /&gt;
  String text = &amp;quot;Java Source and Support&amp;quot;;&lt;br /&gt;
  AttributedString attribString;&lt;br /&gt;
  AttributedCharacterIterator attribCharIterator;&lt;br /&gt;
  Image image;&lt;br /&gt;
  public static void main(String arg[]) {&lt;br /&gt;
    JFrame frame = new JFrame();&lt;br /&gt;
    frame.addWindowListener(new WindowAdapter() {&lt;br /&gt;
      public void windowClosing(WindowEvent e) {&lt;br /&gt;
        System.exit(0);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    frame.getContentPane().add(&amp;quot;Center&amp;quot;, new AttributesApp());&lt;br /&gt;
    frame.setSize(500, 200);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public AttributesApp() {&lt;br /&gt;
    setBackground(Color.lightGray);&lt;br /&gt;
    setSize(500, 200);&lt;br /&gt;
    attribString = new AttributedString(text);&lt;br /&gt;
    GeneralPath star = new GeneralPath();&lt;br /&gt;
    star.moveTo(0, 0);&lt;br /&gt;
    star.lineTo(10, 30);&lt;br /&gt;
    star.lineTo(-10, 10);&lt;br /&gt;
    star.lineTo(10, 10);&lt;br /&gt;
    star.lineTo(-10, 30);&lt;br /&gt;
    star.closePath();&lt;br /&gt;
    GraphicAttribute starShapeAttr = new ShapeGraphicAttribute(star,&lt;br /&gt;
        GraphicAttribute.TOP_ALIGNMENT, false);&lt;br /&gt;
    attribString.addAttribute(TextAttribute.CHAR_REPLACEMENT,&lt;br /&gt;
        starShapeAttr, 0, 1);&lt;br /&gt;
    attribString.addAttribute(TextAttribute.FOREGROUND, new Color(255, 255,&lt;br /&gt;
        0), 0, 1);&lt;br /&gt;
    int index = text.indexOf(&amp;quot;Java Source&amp;quot;);&lt;br /&gt;
    attribString.addAttribute(TextAttribute.FOREGROUND, Color.blue, index,&lt;br /&gt;
        index + 7);&lt;br /&gt;
    Font font = new Font(&amp;quot;sanserif&amp;quot;, Font.ITALIC, 40);&lt;br /&gt;
    attribString.addAttribute(TextAttribute.FONT, font, index, index + 7);&lt;br /&gt;
    loadImage();&lt;br /&gt;
    BufferedImage bimage = new BufferedImage(image.getWidth(this), image&lt;br /&gt;
        .getHeight(this), BufferedImage.TYPE_INT_ARGB);&lt;br /&gt;
    Graphics2D big = bimage.createGraphics();&lt;br /&gt;
    big.drawImage(image, null, this);&lt;br /&gt;
    GraphicAttribute javaImageAttr = new ImageGraphicAttribute(bimage,&lt;br /&gt;
        GraphicAttribute.TOP_ALIGNMENT, 0, 0);&lt;br /&gt;
    index = text.indexOf(&amp;quot;Java&amp;quot;);&lt;br /&gt;
    attribString.addAttribute(TextAttribute.CHAR_REPLACEMENT,&lt;br /&gt;
        javaImageAttr, index - 1, index);&lt;br /&gt;
    font = new Font(&amp;quot;serif&amp;quot;, Font.BOLD, 60);&lt;br /&gt;
    attribString.addAttribute(TextAttribute.FONT, font, index, index + 4);&lt;br /&gt;
    attribString.addAttribute(TextAttribute.FOREGROUND, new Color(243, 63,&lt;br /&gt;
        163), index, index + 4); // Start and end indexes.&lt;br /&gt;
    index = text.indexOf(&amp;quot;source&amp;quot;);&lt;br /&gt;
    attribString.addAttribute(TextAttribute.UNDERLINE,&lt;br /&gt;
        TextAttribute.UNDERLINE_ON, index, index + 2);&lt;br /&gt;
    index = text.indexOf(&amp;quot;and support&amp;quot;);&lt;br /&gt;
    font = new Font(&amp;quot;sanserif&amp;quot;, Font.ITALIC, 40);&lt;br /&gt;
    attribString.addAttribute(TextAttribute.FONT, font, index, index + 10);&lt;br /&gt;
    attribString.addAttribute(TextAttribute.FOREGROUND, Color.white, index,&lt;br /&gt;
        index + 2); // Start and end indexes.&lt;br /&gt;
    attribString.addAttribute(TextAttribute.FOREGROUND, Color.blue,&lt;br /&gt;
        index + 3, index + 10); // Start and end indexes.&lt;br /&gt;
  }&lt;br /&gt;
  public void loadImage() {&lt;br /&gt;
    image = Toolkit.getDefaultToolkit().getImage(&amp;quot;largejexpLogo.gif&amp;quot;);&lt;br /&gt;
    MediaTracker mt = new MediaTracker(this);&lt;br /&gt;
    mt.addImage(image, 1);&lt;br /&gt;
    try {&lt;br /&gt;
      mt.waitForAll();&lt;br /&gt;
    } catch (Exception e) {&lt;br /&gt;
      System.out.println(&amp;quot;Exception while loading.&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    if (image.getWidth(this) == -1) {&lt;br /&gt;
      System.out.println(&amp;quot;no images&amp;quot;);&lt;br /&gt;
      System.exit(0);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void paintComponent(Graphics g) {&lt;br /&gt;
    super.paintComponent(g);&lt;br /&gt;
    Graphics2D g2 = (Graphics2D) g;&lt;br /&gt;
    attribCharIterator = attribString.getIterator();&lt;br /&gt;
    FontRenderContext frc = new FontRenderContext(null, false, false);&lt;br /&gt;
    TextLayout layout = new TextLayout(attribCharIterator, frc);&lt;br /&gt;
    layout.draw(g2, 20, 100);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Text effect: transparent ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;  &lt;br /&gt;
import java.awt.AlphaComposite;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.ruposite;&lt;br /&gt;
import java.awt.Font;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.Graphics2D;&lt;br /&gt;
import java.awt.RenderingHints;&lt;br /&gt;
import java.awt.geom.Rectangle2D;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
public class TransparentText extends JPanel {&lt;br /&gt;
  public void paint(Graphics g) {&lt;br /&gt;
    Graphics2D g2 = (Graphics2D) g;&lt;br /&gt;
    // the rendering quality.&lt;br /&gt;
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,&lt;br /&gt;
        RenderingHints.VALUE_ANTIALIAS_ON);&lt;br /&gt;
    // a red rectangle.&lt;br /&gt;
    Rectangle2D r = new Rectangle2D.Double(50, 50, 550, 100);&lt;br /&gt;
    g2.setPaint(Color.red);&lt;br /&gt;
    g2.fill(r);&lt;br /&gt;
    // a composite with transparency.&lt;br /&gt;
    Composite c = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, .4f);&lt;br /&gt;
    g2.setComposite(c);&lt;br /&gt;
    // Draw some blue text.&lt;br /&gt;
    g2.setPaint(Color.blue);&lt;br /&gt;
    g2.setFont(new Font(&amp;quot;Times New Roman&amp;quot;, Font.PLAIN, 72));&lt;br /&gt;
    g2.drawString(&amp;quot;Java Source and Support&amp;quot;, 25, 130);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    JFrame f = new JFrame();&lt;br /&gt;
    f.getContentPane().add(new TransparentText());&lt;br /&gt;
    f.setSize(800, 250);&lt;br /&gt;
    f.show();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TexturePaint Demo ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;  &lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.Graphics2D;&lt;br /&gt;
import java.awt.Rectangle;&lt;br /&gt;
import java.awt.TexturePaint;&lt;br /&gt;
import java.awt.event.WindowAdapter;&lt;br /&gt;
import java.awt.event.WindowEvent;&lt;br /&gt;
import java.awt.image.BufferedImage;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
public class TexturePaintDemo extends JPanel {&lt;br /&gt;
  public void init() {&lt;br /&gt;
    setBackground(Color.white);&lt;br /&gt;
  }&lt;br /&gt;
  public void paint(Graphics g) {&lt;br /&gt;
    Graphics2D g2 = (Graphics2D) g;&lt;br /&gt;
    BufferedImage bi = new BufferedImage(5, 5,&lt;br /&gt;
        BufferedImage.TYPE_INT_RGB);&lt;br /&gt;
    Graphics2D big = bi.createGraphics();&lt;br /&gt;
    big.setColor(Color.blue);&lt;br /&gt;
    big.fillRect(0, 0, 5, 5);&lt;br /&gt;
    big.setColor(Color.lightGray);&lt;br /&gt;
    big.fillOval(0, 0, 5, 5);&lt;br /&gt;
    Rectangle r = new Rectangle(0, 0, 5, 5);&lt;br /&gt;
    g2.setPaint(new TexturePaint(bi, r));&lt;br /&gt;
  &lt;br /&gt;
    Rectangle rect = new Rectangle(5,5,200,200);&lt;br /&gt;
    &lt;br /&gt;
    g2.fill(rect);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String s[]) {&lt;br /&gt;
    JFrame f = new JFrame();&lt;br /&gt;
    f.addWindowListener(new WindowAdapter() {&lt;br /&gt;
      public void windowClosing(WindowEvent e) {&lt;br /&gt;
        System.exit(0);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    TexturePaintDemo p = new TexturePaintDemo();&lt;br /&gt;
    f.getContentPane().add(&amp;quot;Center&amp;quot;, p);&lt;br /&gt;
    p.init();&lt;br /&gt;
    f.pack();&lt;br /&gt;
    f.setSize(new Dimension(250, 250));&lt;br /&gt;
    f.show();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Text with a Texture ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;  &lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) Ian F. Darwin, http://www.darwinsys.ru/, 1996-2002.&lt;br /&gt;
 * All rights reserved. Software written by Ian F. Darwin and others.&lt;br /&gt;
 * $Id: LICENSE,v 1.8 2004/02/09 03:33:38 ian Exp $&lt;br /&gt;
 *&lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without&lt;br /&gt;
 * modification, are permitted provided that the following conditions&lt;br /&gt;
 * are met:&lt;br /&gt;
 * 1. Redistributions of source code must retain the above copyright&lt;br /&gt;
 *    notice, this list of conditions and the following disclaimer.&lt;br /&gt;
 * 2. Redistributions in binary form must reproduce the above copyright&lt;br /&gt;
 *    notice, this list of conditions and the following disclaimer in the&lt;br /&gt;
 *    documentation and/or other materials provided with the distribution.&lt;br /&gt;
 *&lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS&amp;quot;&amp;quot;&lt;br /&gt;
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED&lt;br /&gt;
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR&lt;br /&gt;
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS&lt;br /&gt;
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR&lt;br /&gt;
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF&lt;br /&gt;
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS&lt;br /&gt;
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN&lt;br /&gt;
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)&lt;br /&gt;
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE&lt;br /&gt;
 * POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 * &lt;br /&gt;
 * Java, the Duke mascot, and all variants of Sun&amp;quot;s Java &amp;quot;steaming coffee&lt;br /&gt;
 * cup&amp;quot; logo are trademarks of Sun Microsystems. Sun&amp;quot;s, and James Gosling&amp;quot;s,&lt;br /&gt;
 * pioneering role in inventing and promulgating (and standardizing) the Java &lt;br /&gt;
 * language and environment is gratefully acknowledged.&lt;br /&gt;
 * &lt;br /&gt;
 * The pioneering role of Dennis Ritchie and Bjarne Stroustrup, of AT&amp;amp;T, for&lt;br /&gt;
 * inventing predecessor languages C and C++ is also gratefully acknowledged.&lt;br /&gt;
 */&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import java.awt.Font;&lt;br /&gt;
import java.awt.Frame;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.Graphics2D;&lt;br /&gt;
import java.awt.Rectangle;&lt;br /&gt;
import java.awt.RenderingHints;&lt;br /&gt;
import java.awt.TexturePaint;&lt;br /&gt;
import java.awt.event.WindowAdapter;&lt;br /&gt;
import java.awt.event.WindowEvent;&lt;br /&gt;
import java.awt.image.BufferedImage;&lt;br /&gt;
import javax.swing.JComponent;&lt;br /&gt;
/**&lt;br /&gt;
 * Text with a Texture&lt;br /&gt;
 * &lt;br /&gt;
 * @author Ian Darwin, http://www.darwinsys.ru/&lt;br /&gt;
 * @version $Id: TexturedText.java,v 1.5 2004/02/09 03:33:49 ian Exp $&lt;br /&gt;
 */&lt;br /&gt;
public class TexturedText extends JComponent {&lt;br /&gt;
  /** The image we draw in the texture */&lt;br /&gt;
  protected BufferedImage bim;&lt;br /&gt;
  /** The texture for painting. */&lt;br /&gt;
  TexturePaint tp;&lt;br /&gt;
  /** The string to draw. */&lt;br /&gt;
  String mesg = &amp;quot;Stripey&amp;quot;;&lt;br /&gt;
  /** The font */&lt;br /&gt;
  Font myFont = new Font(&amp;quot;Lucida Regular&amp;quot;, Font.BOLD, 72);&lt;br /&gt;
  /** &amp;quot;main program&amp;quot; method - construct and show */&lt;br /&gt;
  public static void main(String[] av) {&lt;br /&gt;
    // create a TexturedText object, tell it to show up&lt;br /&gt;
    final Frame f = new Frame(&amp;quot;TexturedText&amp;quot;);&lt;br /&gt;
    TexturedText comp = new TexturedText();&lt;br /&gt;
    f.add(comp);&lt;br /&gt;
    f.addWindowListener(new WindowAdapter() {&lt;br /&gt;
      public void windowClosing(WindowEvent e) {&lt;br /&gt;
        f.setVisible(false);&lt;br /&gt;
        f.dispose();&lt;br /&gt;
        System.exit(0);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    f.pack();&lt;br /&gt;
    f.setLocation(200, 200);&lt;br /&gt;
    f.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  protected static Color[] colors = { Color.red, Color.blue, Color.yellow, };&lt;br /&gt;
  /** Construct the object */&lt;br /&gt;
  public TexturedText() {&lt;br /&gt;
    super();&lt;br /&gt;
    setBackground(Color.white);&lt;br /&gt;
    int width = 8, height = 8;&lt;br /&gt;
    bim = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);&lt;br /&gt;
    Graphics2D g2 = bim.createGraphics();&lt;br /&gt;
    for (int i = 0; i &amp;lt; width; i++) {&lt;br /&gt;
      g2.setPaint(colors[(i / 2) % colors.length]);&lt;br /&gt;
      g2.drawLine(0, i, i, 0);&lt;br /&gt;
      g2.drawLine(width - i, height, width, height - i);&lt;br /&gt;
    }&lt;br /&gt;
    Rectangle r = new Rectangle(0, 0, bim.getWidth(), bim.getHeight());&lt;br /&gt;
    tp = new TexturePaint(bim, r);&lt;br /&gt;
  }&lt;br /&gt;
  public void paint(Graphics g) {&lt;br /&gt;
    Graphics2D g2 = (Graphics2D) g;&lt;br /&gt;
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,&lt;br /&gt;
        RenderingHints.VALUE_ANTIALIAS_ON);&lt;br /&gt;
    g2.setPaint(tp);&lt;br /&gt;
    g2.setFont(myFont);&lt;br /&gt;
    g2.drawString(mesg, 20, 100);&lt;br /&gt;
  }&lt;br /&gt;
  public Dimension getMinimumSize() {&lt;br /&gt;
    return new Dimension(250, 100);&lt;br /&gt;
  }&lt;br /&gt;
  public Dimension getPreferredSize() {&lt;br /&gt;
    return new Dimension(320, 150);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>