在当今社会,java的使用越来越广泛,今天就来为大家介绍一些基础知识,在java中如何绘图以及Graphics类的含义是什么。一起来看看吧。

一、首先说一下java的绘图技术。

1.坐标原点位于左上角,以像素为单位。像素是计算机屏幕上最小的显示单位。在java的坐标系中,第一个是X坐标,表示当前位置为水平方向,距离坐标原点X个像素;第二个是Y坐标,表示当前位置为垂直方向,距离坐标原点Y个像素。图片如下所示:

2.计算机在屏幕上显示的内容都是由屏幕上的每一个像素组成的。比如说,计算机显示器的分辨率是800×600,这就表示计算机屏幕上的每一行由800个点组成,共有600行,整个计算机屏幕共有480000个像素。当然,现在的计算机可以支持更高的分辨率,也就是说,屏幕上可以显示更多的像素。因此,像素是一个密度单位,而厘米是长度单位,这两者无法比较。

3.Component类提供了两个和绘图相关的最重要的方法:

⑴paint(Graphics g)绘制组件的外观;

⑵repaint()刷新组件的外观。

当组件第一次在屏幕显示的时候,程序会自动的调用paint()方法来绘制组件,在以下情况paint()将会被调用:

⑴窗口最小化,再最大化;

⑵窗口的大小发生变化;

⑶repaint函数被调用。

二、接下来简述一下Graphics类

Graphics类可以理解为画笔,为我们提供了各种绘制图形的方法:

⑴画直线drawLine(int x1, int y1, int x2, int y2);

⑵画矩形边框drawRect(int x, int y, int width, int height);

⑶画椭圆边框drawOval(int x, int y, int width, int height);

⑷填充矩形fillRect(int x, int y, int width, int height);

⑸填充椭圆fillOval(int x, int y, int width, int height);

⑹画图片drawImage(Image img, int x, int y,…);

⑺画字符串drawString(String str, int x, int y);

⑻设置画笔的字体setFont(Font font);

⑼设置画笔的颜色setColor(Color c);

代码展示如下:import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class GraphicsTest extends JFrame

{

// 定义组件

MyPanel1 mp = null;

public static void main(String[] args)

{

new GraphicsTest();

}

public GraphicsTest()

{

// 构建组件

mp = new MyPanel1();

// 加入组件

this.add(mp);

// 设置窗体

this.setSize(400, 300);

this.setVisible(true);

this.setLocationRelativeTo(null);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

/**

* @Description: 定义一个MyPanel(我自己的面板是用于绘图和显示绘图的区域)

*/

class MyPanel1 extends JPanel

{

private static final long serialVersionUID = 1 L;

// 重写(覆盖)JPanel的paint方法

public void paint(Graphics g)

{

// 1、调用父类函数,完成初始化任务

super.paint(g);

// 画一个直线

g.drawLine(10, 10, 40, 10);

// 画矩形边框

g.drawRect(50, 50, 40, 40);

// 画椭圆边框

g.drawOval(130, 130, 60, 60);

// 画填充矩形

g.setColor(Color.blue);

g.fillRect(10, 150, 70, 70);

// 画填充椭圆

// 设置画笔颜色

g.setColor(Color.red);

g.fillOval(270, 140, 100, 80);

// 如何画出字

g.setColor(Color.red);

g.setFont(new Font("黑体", Font.BOLD, 40));

g.drawString("祖国万岁", 150, 100);

// 画弧形

g.drawArc(100, 100, 120, 200, 50, 100);

}

}

图片如下:

以上就是关于在java中如何绘图以及Graphics类是什么意思的主要内容。想要了解更多java基础以及常见问题,敬请关注奇Q工具网。

推荐阅读:

java中graphics_在java中如何绘图?Graphics类是什么意思?相关推荐

  1. java如何画矩形条和填充_java.awt.Graphics 类的哪个方法可绘制填充矩形?

    阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内.[说明]本程序对某电码文(原文)进行加密形成密码文,其加密算法如下:假定原文为C1,C2,C3,-,Cn加密后形成的密文为S1,S2,S3 ...

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

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

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

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

  4. java 中如何利用Graphics类绘图

    关于Graphics类的一个结论: Graphics类是所有图形上下文(Graphic context)的抽象基类,因此它是不能直接实例化的,那么为了使用Graphics类绘图,就必须创建其非抽象的子 ...

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

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

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

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

  7. java设计模式工厂模式_Java中的复合设计模式

    java设计模式工厂模式 Composite pattern is one of the Structural design pattern. Composite design pattern is ...

  8. java获取项目中的路径_java中几种获取项目路径方式

    转自http://caodaoxi.iteye.com/blog/1234805 在jsp和class文件中调用的相对路径不同. 在jsp里,根目录是WebRoot 在class文件中,根目录是Web ...

  9. com4j学习(1):Java操作Visio之Java读取Visio图形关系并存储到XML文件中

    前言: MicroSoft Visio是微软旗下一款非常非常出色的绘图软件,可以用来绘制各种各样的图形(如流程图.UML.工程图等).现在有这样一个需求,我们想读取visio中的图形的形状.属性.连接 ...

  10. java变量存储位置_java 中变量存储位置的区别

    [原文] 1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. 2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量 ...

最新文章

  1. PSM-省电模式(PowerSaving Mode)
  2. Linux2.6内核中链表的实现
  3. 线性递推式+求第N项,用矩阵快速幂 如何构造初始矩阵
  4. 经典机器学习算法系列3-k近邻算法
  5. 接受java的返回值_java怎样接受 到return的值的?
  6. boost::python::def相关的测试程序
  7. SAP Commerce Extension Module
  8. 自组网中继台_同频自组网基站
  9. [Wix] 搞了这么久才知道Wix怎么装
  10. python_标识符_帮助系统的使用_命名规则---python工作笔记018
  11. 地理信息-圆形、椭圆、扇形的表示方法及相关判断
  12. Numpy高级操作大全!!!
  13. StanfordDB class自学笔记 (13) Views and Authorization
  14. java 开源im_开源的im即时通讯系统
  15. 用C语言来写斐波那契数列
  16. 【copy_paste数据增强】
  17. 湘潭大学 计算机学院程诗婕,2019 CCF CCSP分赛区竞赛决出金银铜奖
  18. android压力测试命令monkey详解【转】
  19. elasticsearch2.4.1+kibana4.6.1+mavel2.4.1
  20. android 4k手机屏幕分辨率,安卓手机都4K屏了 真的有必要?

热门文章

  1. 【网络实验】10G网络下的真实带宽——CPU负载与网卡TSO、GSO
  2. java判断字符串是否是中文_Java检查字符串是否包含中文字符
  3. win7 升级IE11
  4. 互联网常见错误代码(如404)
  5. IPTV的开展在广电企业、电信运营商角度上的异同
  6. 百度贴吧恶意代码分析
  7. C#WPF内存回收与释放LierdaCracker
  8. 计算机U盘驱动程序安装不上问题解决方案
  9. C++转erlang后感想
  10. python 扫描二维码