展开全部
import java.awt.*;
import java.awt.image.*;
import java.awt.geom.*;
import java.io.*;
import javax.imageio.ImageIO;
public class StrokeExample {
public static void main(String[] args) throws Exception {
BufferedImage bi = new BufferedImage(800,600, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = bi.createGraphics();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_NORMALIZE);
g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
g2d.setPaint(Color.BLACK);
g2d.fillRect(0,0,800,600);
g2d.setPaint(Color.WHITE);
g2d.drawRect(200, 300, 50, 50);
g2d.draw(new Ellipse2D.Float(200f,200f,50f,50f));
g2d.draw(new Rectangle.Float(200f,400f,50f,50f));
g2d.setStroke(new BasicStroke(1.5f));
g2d.drawRect(300, 300, 50, 50);
g2d.draw(new Rectangle.Float(300f,400f,50f,50f));
g2d.draw(new Ellipse2D.Float(300f,200f,50f,50f));
g2d.setStroke(new BasicStroke(2f));
g2d.drawRect(400, 300, 50, 50);
g2d.draw(new Rectangle.Float(400f,400f,50f,50f));
g2d.draw(new Ellipse2D.Float(400f,200f,50f,50f));
g2d.setStroke(new BasicStroke(2.5f));
g2d.drawRect(500, 300, 50, 50);
g2d.draw(new Rectangle.Float(500f,400f,50f,50f));
g2d.draw(new Ellipse2D.Float(500f,200f,50f,50f));
g2d.setStroke(new BasicStroke(3f));
g2d.drawRect(600, 300, 50, 50);
g2d.draw(new Rectangle.Float(600f,400f,50f,50f));
g2d.draw(new Ellipse2D.Float(600f,200f,50f,50f));
g2d.dispose();
ImageIO.write(bi, "PNG", new File("stroke.png"));
}
}