• Java基础之在窗口中绘图——绘制圆弧和椭圆(Sketcher 3 drawing arcs and ellipses)


    控制台程序。

     1 import javax.swing.JComponent;
     2 import java.util.*;
     3 import java.awt.*;
     4 import java.awt.geom.*;
     5 
     6 @SuppressWarnings("serial")
     7 public class SketcherView extends JComponent implements Observer {
     8   public SketcherView(Sketcher theApp) {
     9     this.theApp = theApp;
    10   }
    11 
    12   // Method called by Observable object when it changes
    13   public void update(Observable o, Object rectangle) {
    14     // Code to respond to changes in the model...
    15   }
    16 
    17   // Method to draw on the view
    18   @Override
    19   public void paint(Graphics g) {
    20     // Temporary code...
    21     Graphics2D g2D = (Graphics2D)g;                                    // Get a Java 2D device context
    22     Point2D.Double position = new Point2D.Double(50,10);               // Initial position
    23     double width = 150;                                                // Width of ellipse
    24     double height = 100;                                               // Height of ellipse
    25     double start = 30;                                                 // Start angle for arc
    26     double extent = 120;                                               // Extent of arc
    27     double diameter = 40;                                              // Diameter of circle
    28 
    29     // Define open arc as an upper segment of an ellipse
    30     Arc2D.Double top = new Arc2D.Double(position.x, position.y,
    31                                      width, height,
    32                                      start, extent,
    33                                      Arc2D.OPEN);
    34 
    35     // Define open arc as lower segment of ellipse shifted up relative to 1st
    36     Arc2D.Double bottom = new Arc2D.Double(
    37                                      position.x, position.y - height + diameter,
    38                                      width, height,
    39                                      start + 180, extent,
    40                                      Arc2D.OPEN);
    41 
    42     // Create a circle centered between the two arcs
    43     Ellipse2D.Double circle1 = new Ellipse2D.Double(
    44                                      position.x + width/2 - diameter/2,position.y,
    45                                      diameter, diameter);
    46 
    47     // Create a second circle concentric with the first and half the diameter
    48     Ellipse2D.Double circle2 = new Ellipse2D.Double(
    49                    position.x + width/2 - diameter/4, position.y + diameter/4,
    50                    diameter/2, diameter/2);
    51 
    52     // Draw all the shapes
    53     g2D.setPaint(Color.BLACK);                                         // Draw in black
    54     g2D.draw(top);
    55     g2D.draw(bottom);
    56 
    57     g2D.setPaint(Color.BLUE);                                          // Draw in blue
    58     g2D.draw(circle1);
    59     g2D.draw(circle2);
    60     g2D.drawString("Arcs and ellipses", 80, 100);                      // Draw some text
    61 
    62   }
    63 
    64   private Sketcher theApp;                                             // The application object
    65 }

    其他部分与上一例同。

  • 相关阅读:
    ThinkPHP6.0.5 验证码 遇到的坑 (验证失败)
    css已知宽高和未知宽高的居中定位
    有关CLR的初学小整理(可能理解不深刻,望大牛指出)
    关于CRC循环冗余校验的总结(C#)
    lesson 4 再谈继承多态,抽象类和接口
    Lesson 3
    Lesson 2
    lesson 1
    08_Spring实现action调用service,service调用dao的过程
    07_配置文件中决定接口的实现类
  • 原文地址:https://www.cnblogs.com/mannixiang/p/3488364.html
Copyright © 2020-2023  润新知