Applet程序。
可以把更复杂的几何形状定义为GeneralPath类型的对象。GeneralPath可以是直线、Quad2D曲线和Cubic2D曲线的结合体,甚至可以包含其他GeneralPath对象。
1、绘制星星:
1 import java.awt.geom.*; 2 3 public class Star { 4 // Return a path for a star at x,y 5 public static GeneralPath starAt(float x, float y) { 6 Point2D.Float point = new Point2D.Float(x, y); 7 p = new GeneralPath(GeneralPath.WIND_NON_ZERO); 8 p.moveTo(point.x, point.y); 9 p.lineTo(point.x + 20.0f, point.y - 5.0f); // Line from start to A 10 point = (Point2D.Float)p.getCurrentPoint(); 11 p.lineTo(point.x + 5.0f, point.y - 20.0f); // Line from A to B 12 point = (Point2D.Float)p.getCurrentPoint(); 13 p.lineTo(point.x + 5.0f, point.y + 20.0f); // Line from B to C 14 point = (Point2D.Float)p.getCurrentPoint(); 15 p.lineTo(point.x + 20.0f, point.y + 5.0f); // Line from C to D 16 point = (Point2D.Float)p.getCurrentPoint(); 17 p.lineTo(point.x - 20.0f, point.y + 5.0f); // Line from D to E 18 point = (Point2D.Float)p.getCurrentPoint(); 19 p.lineTo(point.x - 5.0f, point.y + 20.0f); // Line from E to F 20 point = (Point2D.Float)p.getCurrentPoint(); 21 p.lineTo(point.x - 5.0f, point.y - 20.0f); // Line from F to g 22 p.closePath(); // Line from G to start 23 return p; // Return the path 24 } 25 26 private static GeneralPath p; // Star path 27 }
2、定义用来绘制星星的Applet:
1 import javax.swing.*; 2 import java.awt.*; 3 4 @SuppressWarnings("serial") 5 public class StarApplet extends JApplet { 6 // Initialize the applet 7 @Override 8 public void init() { 9 StarPane pane = new StarPane(); // Pane containing stars 10 getContentPane().add(pane); // BorderLayout.CENTER is default position 11 } 12 13 // Class defining a pane on which to draw 14 class StarPane extends JComponent { 15 @Override 16 public void paint(Graphics g) { 17 Graphics2D g2D = (Graphics2D)g; 18 float delta = 60f; // Increment between stars 19 float starty = 0f; // Starting y position 20 21 // Draw 3 rows of stars 22 for(int yCount = 0 ; yCount < 3 ; yCount++) { 23 starty += delta; // Increment row position 24 float startx = 0f; // Start x position in a row 25 26 // Draw a row of 4 stars 27 for(int xCount = 0 ; xCount < 4 ; xCount++) { 28 g2D.draw(Star.starAt(startx += delta, starty)); 29 } 30 } 31 } 32 } 33 }
3、HTML文件:
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2 3 <html> <head> </head> 4 <body bgcolor="000000"> 5 <center> 6 <applet 7 code = "StarApplet.class" 8 width = "360" 9 height = "240" 10 > 11 </applet> 12 </center> 13 </body> 14 </html>