10.5 处理2D信息

来源:互联网 发布:苍南县网络问政平台 编辑:程序博客网 时间:2024/06/16 14:49
import java.awt.*;import java.awt.geom.*;import javax.swing.*;/** * @version 1.33 2007-05-12 * @author Cay Horstmann */public class DrawTest{   public static void main(String[] args)   {      EventQueue.invokeLater(() ->         {            JFrame frame = new DrawFrame();            frame.setTitle("DrawTest");            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);            frame.setVisible(true);         });   }}/** * A frame that contains a panel with drawings */class DrawFrame extends JFrame{   public DrawFrame()   {            add(new DrawComponent());      pack();   }}/** * A component that displays rectangles and ellipses. */class DrawComponent extends JComponent{   private static final int DEFAULT_WIDTH = 400;   private static final int DEFAULT_HEIGHT = 400;   public void paintComponent(Graphics g)   {      Graphics2D g2 = (Graphics2D) g;      // draw a rectangle      double leftX = 100;      double topY = 100;      double width = 200;      double height = 150;      Rectangle2D rect = new Rectangle2D.Double(leftX, topY, width, height);      g2.draw(rect);      // draw the enclosed ellipse      Ellipse2D ellipse = new Ellipse2D.Double();      ellipse.setFrame(rect);      g2.draw(ellipse);      // draw a diagonal line      g2.draw(new Line2D.Double(leftX, topY, leftX + width, topY + height));      // draw a circle with the same center      double centerX = rect.getCenterX();      double centerY = rect.getCenterY();      double radius = 150;      Ellipse2D circle = new Ellipse2D.Double();      circle.setFrameFromCenter(centerX, centerY, centerX + radius, centerY + radius);      g2.draw(circle);   }   public Dimension getPreferredSize() { return new Dimension(DEFAULT_WIDTH, DEFAULT_HEIGHT); }}
0 0
原创粉丝点击