java绘图类:Graphics类


绘图是高级程序中必备的技术,在很多方面都能用到,如:绘制闪屏图片,背景图片和组件外观等。

1.Graphics类

Graphics类是所有图形上下文的抽象基类,Graphics类封装了java支持的基本绘图操作的所需状态信息,主要包括:颜色,字体,画笔,文本,图像。 Graphics类提供了绘图的常用方法,利用这些方法可以绘制一些基本图形(直线,圆弧,矩形,多边形,椭圆等)。

2.Graphics2D类

Graphics2D类继承了Graphics类,Graphics类可以绘制简单的图形,但功能十分有限。而Graphics2D类是一个更强大的绘图操作集合,因此Graphics2D类是最常用的一个绘图类。

绘制图形:

Graphics类的常用方法:

方法 说明 举例
drawLine(int x1,int y1,int x2,int y2) 直线 drawLine(100,100,100,100);
drawArc(int x,int y,int width,int height,int startAngle, int arcAngle) 无填充色弧线 drawArc(100,100,100,200,100);
fillArc(int x,int y,int width, int height, int startAngle, int arcAngle) 用setColor()方法设定的颜色,画着色椭圆的一部分。 g.setColor(Color.green); g.fillArc(60,100,100,60,-90,-270);
drawRect(int x,int y,int width,int height)

无填充色矩形

其中参数x和y指定左上角的位置,参数width和height是矩形的宽和高

g.drawRect(80,100,40,25);
fillRect(int x,int y,int width,int height) 是用预定的颜色填充一个矩形,得到一个着色的矩形块

g.setColor(Color.yellow);

g.fillRect(20,20,20,20);

drawPolygon(int xpoints[],int yPoints[],int nPoints) 绘制一个普通多边形

int m ={10,50,10,50};

int n = {10,10,50,10};

drawPolygonm,n,100);

fillPolygon(int xPoints[],int yPoints[],int nPoints) 用方法setColor()设定的颜色着色多边形。其中数组xPoints[]存储x坐标点,yPoints[]存储y坐标点,nPoints是坐标点个数 int px1[]={50,90,10,50};
int py1[]={10,50,50,10};
int px2[]={140,180,170,180,140,100,110,140};
int py2[]={5,25,35,45,65,35,25,5};
g.setColor(Color.blue);
g.fillPolygon(px1,py1,4);
g.setColor(Color.red);
g.drawPolygon(px2,py2,9);
drawOval(int x,int y,int width,int height) 是画用线围成的椭圆形。其中参数x和参数y指定椭圆形左上角的位置,参数width和height是横轴和纵轴 drawOval(10,10,100,50);

续表:

方法 说明 举例
fillOval(int x,int y,int width,int height) 是用预定的颜色填充的椭圆形,是一个着色块。也可以用画椭圆形方法画圆形,当横轴和纵轴相等时,所画的椭圆形即为圆形 g.drawOval(10,10,60,100);
g.setColor(Color.cyan);g.fillOval(100,50,60,60);
g.setColor(Color.magenta);g.fillOval(15,50,100,50);
draw3DRect(int x,int y,int width,int height, boolean raised) 画一个突出显示的矩形。其中x和y指定矩形左上角的位置,参数width和height是矩形的宽和高,参数raised是突出与否 draw3DRect(100,30,30,50, true);
fill3DRect(int x,int y,int width,int height,boolean raised) 用预定的颜色填充一个突出显示的矩形 g.draw3DRect(80,100,40,25,true);
g.setColor(Color.yellow); g.fill3DRect(30,70,20,30,true);

示例:

import java.awt.*;
import java.awt.geom.*;
import javax.swing.*; public class Drawtest extends JFrame
{
public Drawtest(){
setTitle("示例");
setSize(300,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(new s()); } class s extends JPanel{
public void paint(Graphics g)
{
Graphics2D g2 = (Graphics2D) g;
Shape[] shapes = new Shape[4];
shapes[0] = new Ellipse2D.Double(5,5,100,100);
shapes[1] = new Rectangle2D.Double(110,5,100,100);
shapes[2] = new Rectangle2D.Double(15,15,80,80);
shapes[3] = new Ellipse2D.Double(120,15,80,80);
for(Shape shape:shapes){
Rectangle2D bounds = shape.getBounds2D();
if(bounds.getWidth() == 80) g2.fill(shape);
else g2.draw(shape);
}
}
}
public static void main(String[] args) {
new Drawtest().setVisible(true);
}
}

运行结果如下:

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

  1. Java 在PPT中绘制图形

    Microsoft PowerPoint可支持在幻灯片中插入各种类型的图形并且可设置图形填充.线条颜色.图形大小.位置等.下面将通过Java编程来演示在PPT中绘制图形的方法. 工具:Free Spi ...

  2. Java 在PDF文档中绘制图形

    本篇文档将介绍通过Java编程在PDF文档中绘制图形的方法.包括绘制矩形.椭圆形.不规则多边形.线条.弧线.曲线.扇形等等.针对方法中提供的思路,也可以自行变换图形设计思路,如菱形.梯形或者组合图形等 ...

  3. Java 窗口 绘制图形 #2

    写在前面: 高考结束咧,爽到啊,好耶 完善了Java 窗口 绘制图形 #1里面的程序 加入了缩放平移功能,给代码加了注释 1 package my_package; 2 3 import java.a ...

  4. python中的turtle库绘制图形

    1. 前奏: 在用turtle绘制图形时,需要安装对应python的解释器以及IDE,我安装的是pycharm,在安装完pycharm后,在pycharm安装相应库的模块,绘图可以引入turtle模块 ...

  5. 在Android中使用OpenGL ES进行开发第(三)节:绘制图形

    一.前期基础知识储备笔者计划写三篇文章来详细分析OpenGL ES基础的同时也是入门关键的三个点: ①OpenGL ES是什么?与OpenGL的关系是什么?——概念部分 ②使用OpenGLES绘制2D ...

  6. Java Swing图形界面开发

    本文转自xietansheng的CSDN博客内容,这是自己见过的最通俗易懂.最适合快速上手做Java GUI开发的教程了,这里整合一下作为自己以后复习的笔记: 原文地址:https://blog.cs ...

  7. Android OpenGL ES 开发:绘制图形

    OpenGL 绘制图形步骤 上一篇介绍了 OpenGL 的相关概念,今天来实际操作,使用 OpenGL 绘制出图形,对其过程有一个初步的了解. OpenGL 绘制图形主要概括成以下几个步骤: 创建程序 ...

  8. CSS 魔法系列:纯 CSS 绘制图形(心形、六边形等)

    <CSS 魔法系列>继续给大家带来 CSS 在网页中以及图形绘制中的使用.这篇文章给大家带来的是纯 CSS 绘制五角星.六角形.五边形.六边形.心形等等. 我们的网页因为 CSS 而呈现千 ...

  9. html5 Canvas绘制图形入门详解

    html5,这个应该就不需要多作介绍了,只要是开发人员应该都不会陌生.html5是「新兴」的网页技术标准,目前,除IE8及其以下版本的IE浏览器之外,几乎所有主流浏览器(FireFox.Chrome. ...

  10. html5 canvas 笔记一(基本用法与绘制图形)

    <canvas> 元素 <canvas id="tutorial" width="150" height="150"> ...

随机推荐

  1. 电商平台物流模块自建OR对接第三方物流平台

    ​ 前沿 近几年来,电商行业竞争变得愈加激烈,公域流量获客成本越来越高,电商平台规则也越来越严格,数据无法出塔,商家无法自主运营用户群等等原因,很多大品牌纷纷开始搭建自有商城,运营私域流量,以此来降低 ...

  2. 输入法词库解析(二)搜狗拼音细胞词库.scel(.qcel)

    详细代码:https://github.com/cxcn/dtool 前言 .scel 是搜狗拼音输入法所使用的细胞词库格式,可以在 https://pinyin.sogou.com/dict/ 下载 ...

  3. windows系统下使用bat脚本文件设置 tomcat 系统环境变量

    说明:在一个bat文件中设置tomcat环境变量后,不能直接使用,需要另起一个bat文件才能使用 号开头的行不要写在bat文件中 # tomcat1.bat # 这个bat文件实现的功能:设置环境变量 ...

  4. Fluentd部署:系统配置

    Fluentd的全局配置项,诸如开启RPC.使用多worker模式等.可在配置文件中通过<system>进行配置,或通过命令行进行配置. 参数 workers:指定worker进程数,默认 ...

  5. OpenglEs之三角形绘制

    在前面我们已经在NDK层搭建好了EGL环境,也介绍了一些着色器相关的理论知识,那么这次我们就使用已经搭配的EGL绘制一个三角形吧. 在Opengl ES的世界中,无论多复杂的形状都是由点.线或三角形组 ...

  6. PAT (Basic Level) Practice 1029 旧键盘 分数 20

    旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在 2 行中分别给出应该输入的文字.以及 ...

  7. Linux+Wine玩火影忍者究极风暴3指南

    如果你的系统没有Wine先装Wine,Wine在各大发行版的源都能找到.记住32位和64位的Wine都要装 去https://www.playonlinux.com/wine/binaries/pho ...

  8. 记Windows的一个存在了十多年的bug

    bug Windows有一个bug,持续了十多年,从Windows Visita开始(2007年),一直存在,直到Windows11(2021年)才修复(其实也不叫修复,后面我再具体说),而Windo ...

  9. P7800 [COCI2015-2016#6] PAROVI 方法记录

    原题链接 桔梗花于此开放 [COCI2015-2016#6] PAROVI 题目描述 \(\text{Mirko}\) 和 \(\text{Slavko}\) 在玩一个游戏,先由 \(\text{Mi ...

  10. [题解] Atcoder Regular Contest ARC 151 A B C D E 题解

    点我看题 昨天刚打的ARC,题目质量还是不错的. A - Equal Hamming Distances 对于一个位置i,如果\(S_i=T_i\),那么不管\(U\)的这个位置填什么,对到\(S\) ...