控制台程序。

 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 }

其他部分与上一例同。

转载于:https://www.cnblogs.com/mannixiang/p/3488364.html

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

  1. java 绘制长方形_Java基础之在窗口中绘图——绘制直线和矩形(Sketcher 2 drawing lines and rectangles)...

    控制台程序. import javax.swing.JComponent; import java.util.*; import java.awt.*; import java.awt.geom.*; ...

  2. Java基础之在窗口中绘图——绘制直线和矩形(Sketcher 2 drawing lines and rectangles)...

    控制台程序. 1 import javax.swing.JComponent; 2 import java.util.*; 3 import java.awt.*; 4 import java.awt ...

  3. Java基础之在窗口中绘图——利用多态性使用鼠标自由绘图(Sketcher 7 with a crosshair cursor)...

    控制台程序. 在Sketcher中创建形状时,并不知道应该以什么顺序创建不同类型的形状,这完全取决于使用Sketcher程序生成草图的人.因此需要绘制形状,对它们执行其他操作而不必知道图形是什么.当然 ...

  4. Java基础之在窗口中绘图——使用模型/视图体系结构在视图中绘图(Sketcher 1 drawing a 3D rectangle)...

    控制台程序. 在模型中表示数据视图的类用来显示草图并处理用户的交互操作,所以这种类把显示方法和草图控制器合并在一起.不专用于某个视图的通用GUI创建和操作在SketcherFrame类中处理. 模型对 ...

  5. Visual C++ 2008入门经典 第十五章 在窗口中绘图

    /*第十五章 在窗口中绘图 主要内容: 1 Windows为窗口绘图提供的坐标系统 2 设置环境及其必要性 3 程序如何以及在窗口中绘图 4 如何定义鼠标消息的处理程序 5 如何定义自己的形状类 6 ...

  6. JAVA基础(持续更新中)

    JAVA基础 2020年11月27日 21:01 1 预科 a. 什么是计算机 能够按照程序运行,自动.高速处理海量数据的现代化智能电子设备. 由硬件常见的形式有台式计算机.笔记本计算机.大型计算机等 ...

  7. cad怎么绘制大样图_浩辰CAD看图王电脑版中怎么绘制圆弧?

    有些小伙伴在使用浩辰CAD看图王电脑版编辑图纸的时候,找不到绘制圆弧的工具该怎么办呢?接下来就给大家介绍一下浩辰CAD看图王电脑版中绘制圆弧的操作教程吧! 在浩辰CAD看图王电脑版中,提供的绘图功能有 ...

  8. Java基础:IO 流中的 flush

    无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家.教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家.点 这里 可以跳转到教程. 内容概要 Java IO ...

  9. Java基础核心总结(编辑中)

    Java概述 什么是Java? Java是Sun Microsystems于1995年首次发布的一种编程语言和计算平台.编程语言还比较好理 解,那么什么是计算平台呢? 计算平台是在电脑中运行应用程序( ...

最新文章

  1. VTK:图片之ImageConvolve
  2. 深度学习之早停策略EarlyStopping以及保存测试集准确率最高的模型ModelCheckpoint
  3. java面试题8 牛客:在Web应用程序中,( )负责将HTTP请求转换为HttpServletRequest对象
  4. PHP云尚发卡,云尚发卡1.5.7添加(极客支付)
  5. flume1.8实现hdfsSink整点滚动文件
  6. Codeforces Round #698 (Div. 2) (思维)
  7. mysqlinnodb教程_mysql系列教程 - innodb锁
  8. 算法(四)、时间复杂度、排序、查找
  9. f-stack中ipc传递指针从应用中读取信息时挂掉
  10. eda交通灯控制器波形输入_【EDA课程设计】基于VHDL十字路口交通灯控制电路
  11. 你和你的女神之间,差了一个OpenCV口红色号识别器,android开发环境的搭建步骤
  12. Excel-如何隐藏/显示某些行项目或者列项目?
  13. css 如何选择同一个class下的第一个div?
  14. 上海亚商投顾:沪指高开低走 钠离子电池、储能概念崛起
  15. python读取word文档中的图片_【Python 3 获取Word所有图片】
  16. 服务器租用过程中网站被黑,怎么解决这种情况?
  17. 计算机中的无线网卡使用哪两种类型的扩展槽,第三章计算机每一种扩展槽的相关信息.ppt...
  18. gogland跨平台编译
  19. Python文件,照片批量重命名脚本
  20. VJ简单搜索题组题解

热门文章

  1. mac 使用命令 快速隐藏和显示桌面内容
  2. 非线性控制 数学基础 1 Lipschitz 条件
  3. 工业缺陷检测工程实践综述
  4. 【网络】别墅网络布置
  5. 宝塔安装授权源码教程
  6. 大数据分析python r matlab_留学生商科金融分析大数据R语言Python matlab Uhomework.com...
  7. 设计线性相位高通FIR滤波器
  8. Gazebo仿真踩坑系列-乱飞、抖动等
  9. 【ros中用joint使机器狗与机械臂仿真的合成】
  10. java使用openOffice 实现word转pdf