1. package jisuan;
  2. import java.awt.Dimension;
  3. import java.awt.EventQueue;
  4. import java.awt.Graphics;
  5. import java.awt.Graphics2D;
  6. import java.awt.geom.Ellipse2D;
  7. import java.awt.geom.Line2D;
  8. import java.awt.geom.Rectangle2D;
  9. import javax.swing.JComponent;
  10. import javax.swing.JFrame;
  11. public class Drawtest {
  12. public static void main(String[] args) {
  13. EventQueue.invokeLater(new Runnable() {
  14. @Override
  15. public void run() {
  16. JFrame frame = new DrawFrame();
  17. frame.setTitle("计算器");
  18. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  19. frame.setVisible(true);
  20. }
  21. });
  22. }
  23. }
  24. class DrawFrame extends JFrame
  25. {
  26. /**
  27. * 创建一个窗口
  28. */
  29. private static final long serialVersionUID = 1L;
  30. public DrawFrame() {
  31. add(new DrawComponent());
  32. pack();
  33. }
  34. }
  35. class DrawComponent extends JComponent
  36. {
  37. /**
  38. * 画图
  39. */
  40. private static final long serialVersionUID = 1L;
  41. private static final int DEFAULT_WIDTH = 400;
  42. private static final int DEFAULY_HEIQHT = 400;
  43. public void paintComponent(Graphics g) {
  44. Graphics2D g2 = (Graphics2D)g;
  45. double leftX = 100;
  46. double topY = 100;
  47. double width = 200;
  48. double height = 150;
  49. //长方形
  50. Rectangle2D rect = new Rectangle2D.Double(leftX, topY , width , height);
  51. g2.draw(rect);
  52. //椭圆
  53. Ellipse2D ellipse = new Ellipse2D.Double();
  54. ellipse.setFrame(rect);
  55. g2.draw(ellipse);
  56. //画斜线
  57. g2.draw(new Line2D.Double(leftX ,topY ,leftX + width, topY + height));
  58. //大园
  59. double centerX = rect.getCenterX();
  60. double centerY = rect.getCenterY();
  61. double radius = 150;
  62. Ellipse2D circle = new Ellipse2D.Double();
  63. circle.setFrameFromCenter(centerX, centerY, centerX + radius, centerY + radius);
  64. g2.draw(circle);
  65. }
  66. public Dimension getPreferredSize() {
  67. return new Dimension(DEFAULT_WIDTH, DEFAULY_HEIQHT);
  68. }
  69. }

java 2D图形绘制的更多相关文章

  1. emwin之2D图形绘制问题

    @2018-09-03 [问题] 在 WM_PAINT 消息分支里绘制2D图形可以正常显示,而在外部函数或按钮按下事件的响应消息分支下等处,绘制2D图形则不显示. [解决] 在除消息WM_PAINT分 ...

  2. Java Graphics 图形绘制

    Graphics类提供基本绘图方法,Graphics类提供基本的几何图形绘制方法,主要有:画线段.画矩形.画圆.画带颜色的图形.画椭圆.画圆弧.画多边形.画字符串等. 画线段 drawLine pub ...

  3. Java入门:绘制简单图形

    在上一节,我们学习了如何使用swing和awt工具创建一个空的窗口,本节学习如何绘制简单图形. 基本绘图介绍 Java中绘制基本图形,可以使用Java类库中的Graphics类,此类位于java.aw ...

  4. Shadertoy 教程 Part 5 - 运用SDF绘制出更多的2D图形

    Note: This series blog was translated from Nathan Vaughn's Shaders Language Tutorial and has been au ...

  5. Shadertoy 教程 Part 4 - 绘制多个2D图形和混入

    Note: This series blog was translated from Nathan Vaughn's Shaders Language Tutorial and has been au ...

  6. Java 2D API - 2. Graphics 入门

    Java 2D API强大而复杂,不过大多时候我们只需使用java.awt.Graphcis类的部分功能.下面的内容将覆盖大多数的常见应用. Graphics 类中的方法大致可以分为两类: Draw ...

  7. Java 2D API - 1. 基本概念

    Java 2D API扩展AWT包,对二维图形.文本及成像功能提供了支持,可用于开发复杂的界面.绘图软件和图像编辑器.Java 2D对象位于用户坐标空间(User coordinate space), ...

  8. 【Windows编程】系列第五篇:GDI图形绘制

    上两篇我们学习了文本字符输出以及Unicode编写程序,知道如何用常见Win32输出文本字符串,这一篇我们来学习Windows编程中另一个非常重要的部分GDI图形绘图.Windows的GDI函数包含数 ...

  9. 13个JavaScript图表(JS图表)图形绘制插件【转】

    现在网络上又有越来越多的免费的(JS 图表)JavaScript图表图形绘制插件.我之前给一家网站做过复杂的图形,我们用的是 highchart.在那段时间,没有很多可供选择的插件.但现在不同了,很容 ...

随机推荐

  1. 第 5 章 网络 - 032 - 学容器必须懂 bridge 网络

    bridge 网络 Docker 安装时会创建一个 命名为 docker0 的 linux bridge.如果不指定--network,创建的容器默认都会挂到 docker0 上. 创建一个容器 一个 ...

  2. 如何修改Sublime Text3 的侧边栏字体大小

    如何修改Sublime Text3 的侧边栏字体大小 一.总结 一句话总结:用PackageResourceViewer插件来修改 PackageResourceViewer插件 1.如果Sublim ...

  3. @Basic表示一个简单的属性 懒加载,急加载

    5.@Basic(fetch=FetchType,optional=true) 可选 @Basic表示一个简单的属性到数据库表的字段的映射,对于没有任何标注的getXxxx()方法,默认 即为 @Ba ...

  4. You Don't Know JS: Scope & Closures (第2章: Lexical Scope)

    2种主要的models for how scope work. 最普遍的是Lexical Scope. 另一种 Dynamic Scope.(在Appendix a中介绍.和Lexical Scope ...

  5. CF-822C Hacker, pack your bags! 思维题

    题目大意是给若干线段及其费用,每个线段权值即为其长度.要求找出两个不重合线段,令其权值和等于x且费用最少. 解法: 先分析一下题目,要处理不重合的问题,有重合的线段不能组合,其次这是一个选二问题,当枚 ...

  6. json -- dump load dumps loads 简单对比

    json.dumps是将一个Python数据类型列表进行json格式的编码解析, 示例如下: >>> import json #导入python 中的json模块>>&g ...

  7. php文件包含漏洞(利用phpinfo)复现

     利用docker复现该漏洞,访问http://192.168.80.156:8080/phpinfo.php,可以看到页面出现phpinfo页面 再访问http://192.168.80.156:8 ...

  8. bzoj2431

    题意:求有多少个逆序对为k的排列 题解:\(dp[i][j]\)表示1~i的排列中有j个逆序对的方案数,转移就是把i放在1~i-1的排列中的第几位,\(dp[i][j]=\sum_{x=0}^{min ...

  9. element-ui table中排序 取消表格默认排序问题

    sortTable  设置为 custom 一定要设置在列上

  10. 根据userAgent判断打开网页的所在终端,以及浏览器

    function _IsIOS() { var ua = navigator.userAgent.toLowerCase(); if(ua.match(/iPhone\sOS/i) == " ...