Mega Code Archive

 
Categories / Java / 2D Graphics GUI
 

Texture paint

import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.TexturePaint; import java.awt.geom.Rectangle2D; import java.awt.geom.RoundRectangle2D; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.InputStream; import javax.swing.JFrame; import javax.swing.JPanel; import com.sun.image.codec.jpeg.ImageFormatException; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageDecoder; public class TexturePaintFill extends JPanel {   private BufferedImage mImage;   public TexturePaintFill() throws IOException, ImageFormatException {     // Load the specified JPEG file.     InputStream in = getClass().getResourceAsStream("largerntsoftLogo.jpg");     JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(in);     mImage = decoder.decodeAsBufferedImage();     in.close();   }   public void paint(Graphics g) {     Graphics2D g2 = (Graphics2D) g;     // a round rectangle.     RoundRectangle2D r = new RoundRectangle2D.Float(25, 35, 150, 150, 25,         25);     // a texture rectangle the same size as the texture image.     Rectangle2D tr = new Rectangle2D.Double(0, 0, mImage.getWidth(), mImage         .getHeight());     // the TexturePaint.     TexturePaint tp = new TexturePaint(mImage, tr);     // Now fill the round rectangle.     g2.setPaint(tp);     g2.fill(r);   }   public static void main(String[] args) throws Exception {     JFrame f = new JFrame();     f.getContentPane().add(new TexturePaintFill());     f.setSize(350, 250);     f.show();   } }