java 2D 绘图
简介
java 2D绘图
code
/*
* @Author: your name
* @Date: 2020-10-28 21:36:29
* @LastEditTime: 2020-10-28 21:51:30
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /java/DrawTest.java
*/
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
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);
});
}
}
class DrawFrame extends JFrame {
public DrawFrame() {
add(new DrawComponent());
pack();
}
}
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);
}
}
result
image

java 2D 绘图的更多相关文章
- Java 2D API - 1. 基本概念
Java 2D API扩展AWT包,对二维图形.文本及成像功能提供了支持,可用于开发复杂的界面.绘图软件和图像编辑器.Java 2D对象位于用户坐标空间(User coordinate space), ...
- iOS 2D绘图 (Quartz 2D) 概述
本篇博客原文地址:http://blog.csdn.net/hello_hwc?viewmode=list 由于自己的项目需要,从网络上下载了许多关于绘制图形的demo,只是用在自己的项目中,很多地方 ...
- Qt中2D绘图问题总结(一)----------基本的绘制与填充
刚刚开始学习Qt不久,才开始渐渐地熟悉基础内容,学习过程中的一些知识的总结和感悟希望通过博客记录下来,与大家分享学习的同时,也是对自己坚持下去的鞭策,废话不多说了,开始第一次的小总结吧. Qt提供了强 ...
- Java 2D API - 2. Graphics 入门
Java 2D API强大而复杂,不过大多时候我们只需使用java.awt.Graphcis类的部分功能.下面的内容将覆盖大多数的常见应用. Graphics 类中的方法大致可以分为两类: Draw ...
- Quartz 2d绘图
今天看了一下Quartz 2D绘图,我只想说:不要把绘图和动画那些东西当做一个很复杂的东西,其实只要你认真看还是可以理解的.他们并不难.啰嗦了几句,现在直接进入正题: 前提是我们必须新建一个singl ...
- WPF学习05:2D绘图 使用Transform进行控件变形
在WPF学习04:2D绘图 使用Shape绘基本图形中,我们了解了如何绘制基本的图形. 这一次,我们进一步,研究如何将图形变形. 例子 一个三角形,经Transform形成组合图形: XAML代码: ...
- iOS 2D绘图详解(Quartz 2D)之路径(点,直线,虚线,曲线,圆弧,椭圆,矩形)
前言:一个路径可以包含由一个或者多个shape以及子路径subpath,quartz提供了很多方便的shape可以直接调用.例如:point,line,Arc(圆弧),Curves(曲线),Ellip ...
- iOS 2D绘图详解(Quartz 2D)之概述
前言:最近在研究自定义控件,由于想要彻底的定制控件的视图还是要继承UIView,虽然对CALayer及其子类很熟练,但是对Quartz 2D这个强大的框架仍然概念模棱两可.于是,决定学习下,暂定7篇文 ...
- HTML5 Canvas 2D绘图
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/ShiJiaqi. http://www.cnblogs.com/shijiaqi1066/p/4851774. ...
- Quartz-2D绘图之概览
最近公司新项目需求要把数据图形化,趁着这个机会,重温了下Quarts-2D这个强大的跨平台2D绘图引擎. 一.Quartz概述 1.Quartz 2D是一个二维的绘图引擎,支持iOS和Mac OS平台 ...
随机推荐
- web自动化:webelement常用api
一.常用基本操作 1. Click 触发当前元素的点击事件 webelement.click(); 2.Sendkeys 往当前元素输入内容 webelement.sendkeys("con ...
- Vue ElementUI 树表格
树表格做懒加载-点击小箭头走接口 children为[]则使用hasChildren的true/false来判断是否有子节点,另,如果要做点击小箭头走接口必须加lazy及load <el-tab ...
- 一行代码搞定防抖节流:JavaScript新特性解析
防抖(Debounce)和节流(Throttle)是两种前端开发中常用的性能优化技术,尤其在处理高频触发事件如滚动.调整窗口大小.输入等场景中.传统实现这些功能需要编写复杂的函数,但随着JavaScr ...
- windows 隐藏桌面了解此图片
1. 桌面上有了解此图片图标无法删除 这是因为在windows背景设置中选择了Window聚焦. 如果想关闭可以选择其他选项.如果不想关闭Window聚焦还想隐藏桌面了解此图片图标,可以参考下面设置. ...
- 【ROS】5.1 ARP攻击Turtlebot3汉堡Burger并解析移动报文
原视频 ARP攻击 实验环境推荐:Linux虚拟机×2:Ubuntu 20.04或18.04或kali,被攻击机安装好ROS: 提升能力环境推荐:不同真机下的Linux虚拟机×2:Ubuntu 20. ...
- Oracle链接服务器导致SQL Server异常终止
现象 首先该链接服务器是使用 OraOLEDB provider (OLEDB Provider for Oracle)创建的,在使用该链接服务器的SQL语句中出现特殊字符 "--" ...
- JavaScript编程的10+最佳实践解决方案
@charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...
- JDK网站最终的拼图
"JDK源码剖析网"目前只上线了一小部分的内容(而且还未更新完成),Javac编译器,HotSpot基础.垃圾收集器以及HotSpot运行时将在今年10月份之前做为付费内容努力更新 ...
- 第9.1讲、Tiny Encoder Transformer:极简文本分类与注意力可视化实战
Tiny Encoder Transformer:极简文本分类与注意力可视化实战 项目简介 本项目实现了一个极简版的 Transformer Encoder 文本分类器,并通过 Streamlit 提 ...
- 使用 Certbot 申请 SSL 证书
Certbot 可以用于从 Let's Encrypt 自动申请.安装.更新免费的 HTTPS 证书(默认只有3个月有效期,可使用脚本自动续期). 1.安装 Certbot Linux:apt ins ...