Peintures des bords
et intérieurs
des objets graphiques
StrokePaint.class
Fichier source
/* Auteur: Nicolas JANEY */
/* nicolas.janey@univ-fcomte.fr */
/* Novembre 2001 */
import java.awt.*;
import java.awt.image.*;
import java.awt.geom.*;
import java.applet.*;
import java.net.*;
public class StrokePaint extends Applet {
private Image i = null ;
private BufferedImage bi = null ;
public void init() {
setBackground(new Color(200,200,200));
URL url = this.getDocumentBase();
String adresse = "http://"+url.getHost()+"/IG/Java2D/Images/r1.gif" ;
try {
URL u = new URL(adresse);
i = getImage(u) ; }
catch (MalformedURLException e) { }
}
public void paint(Graphics g) {
Graphics2D g2 =(Graphics2D) g;
g2.setColor(new Color(0,0,0));
BasicStroke bs1 = new BasicStroke(8,
BasicStroke.CAP_SQUARE,
BasicStroke.JOIN_ROUND);
g2.setStroke(bs1);
g2.draw(new Line2D.Double(30,10,260,30)) ;
float dp2[] = { 7,2,5,3,4,8 };
BasicStroke bs2 = new BasicStroke(2,
BasicStroke.CAP_BUTT,
BasicStroke.JOIN_ROUND,
0,
dp2,
0);
g2.setStroke(bs2);
g2.draw(new Ellipse2D.Double(25,50,45,90)) ;
float dp3[] = { 12,3,15,4,2,11 };
BasicStroke bs3 = new BasicStroke(4,
BasicStroke.CAP_BUTT,
BasicStroke.JOIN_ROUND,
0,
dp3,
0);
g2.setStroke(bs3);
g2.draw(new Rectangle(150,55,120,30)) ;
Color c = new Color(120,100,70) ;
g2.setPaint(c);
g2.fill(new Ellipse2D.Double(90,50,45,90)) ;
Color c1 = new Color(200,0,0) ;
Color c2 = new Color(0,0,170) ;
GradientPaint gp = new GradientPaint(0,0,c1,40,30,c2,true);
g2.setPaint(gp);
g2.fill(new Rectangle(150,110,115,30)) ;
Polygon p2 = new Polygon();
p2.addPoint(30,180);
p2.addPoint(70,280);
p2.addPoint(170,250);
p2.addPoint(230,270);
p2.addPoint(280,160);
bi = new BufferedImage(100,
166,
BufferedImage.TYPE_INT_ARGB);
Graphics2D g2D = bi.createGraphics();
g2D.drawImage(i,0,0,this);
TexturePaint tp = new TexturePaint(bi,new Rectangle2D.Double(0,0,50,83));
g2.setPaint(tp);
g2.fill(p2);
}
public String getAppletInfo() {
return "Dessin des bords et remplissage sous Java 2D.";
}
}