Java中的图形类简介
它是存在于java.awt包中的一个抽象类,它扩展了java.lang包中的Object类,作为所有图形上下文的超类,它允许在一个应用程序中绘制各种组件,可以很容易地实现在各种设备或许多真实图像上。
图形类的每一个对象都是一个完整的包,包含了实现小程序基本功能所需的所有方法,与此同时,它的状态包含了与要绘制的组件、当前剪辑、当前颜色、XOR交替颜色、字体或原点翻译有关的信息。
带参数的语法
public abstract class Graphics extends Object
Graphics类是一个抽象类;因此,我们不能制造它的对象;相反,我们需要使用它的一个子类,如DebugGraphics, Graphics2D。而且它也是一个公共类;可以使用任何一个类来访问它。
它扩展了java.lang包中的Object类,因此扩展了它的所有功能,如clone、equals,等等。
图形类在Java中是如何工作的?
图形类用于在屏幕上绘制不同的可视化组件,屏幕被认为是由位于输出设备的像素之间的无限多的像素组成的画板。所有作为函数参数的坐标都被认为是相对于触发该方法前已被翻译的原点而言的。以下是我们在任何方法中给出不同点时的程序:-
- 当绘制一个图形的轮廓时,一个无限细的路径在像素之间穿行,并在锚点的底部和右侧放置一个像素大小的笔。
- 在绘制一个给定的矩形时,在右边和底部的边缘多占一行,而在填充时,同样的边界被用来填充使用setColor方法设置的颜色。
- 如果一个人写了一个文本,该文本被写在基线坐标之上。
- 当为文本绘制基线时,文本正下方的像素被视为绘制线。
所有可以执行的操作都会修改位于指定形状内的像素,并通过图形类的一个对象来控制。这个区域被称为用户剪辑,只能使用setClip和clipReact方法进行修改。
一个指定主要剪裁区域的设备剪裁与上述用户剪裁相结合,定义了一个复合剪裁,该复合剪裁定义了最终剪裁的区域。所有的绘图或书写都是以当前的颜色、当前的字体和使用当前的绘画模式完成的。
1. drawRoundRect (int a1, int b1, int width, int height, int horArc, int vertArc )
该函数用于创建一个具有圆角的矩形,其中
a1- 这个参数表示要绘制的矩形的左上角的x坐标。
b1- 这个参数表示要绘制的矩形的左上角的y坐标。
width- 这个参数表示要绘制的矩形的宽度。
height- 这个参数表示要绘制的矩形的高度。
horArc- 这个参数表示要绘制的矩形的所有角的水平圆弧直径。
vertArc- 这个参数表示要绘制的矩形的所有角的垂直圆弧直径。
左边缘=x,右边缘=x+宽度-1
顶边=y,底边=y+高度-1
2.public abstract void fillRoundRect (int x,int y,int width,int height, int arcWidth,int arcHeight)
该方法用于用指定的颜色填充圆角矩形,作为当前颜色。参数解释与drawRoundRect()方法中给出的相同。
3.public abstract void clipRect (int x, .int y, int width, int height)
这个方法用于将当前的剪辑与矩形的规格相交。如果当前剪辑区域为空,指定的矩形被设置为新的剪辑,可以使用setClip方法进行修改。这些操作不影响剪裁区域的外部。
4. public void fill3DRect(int a1,int b1, int width,int height,boolean leveled)
这个方法用来画一个3-D的高亮矩形,用setColor方法指定的颜色填充。为了给图形一个三维的外观,边缘将在一定程度上被倒角,并从左上角开始突出。
参数。
a1-这个参数表示要绘制的矩形的左上角的x坐标。
b1-这个参数表示要绘制的矩形的左上角的y坐标。
width- 这个参数表示要绘制的矩形的宽度。
height- 这个参数表示要绘制的矩形的高度。
leveled- 一个布尔值,如果它为真--所画的矩形将被显示为水平于表面;否则,它将被显示在表面的同一水平上。
5.公共抽象的 void drawOval (int a,int b,int width1,int height1)
该方法用于在指定尺寸的矩形边界上绘制空的椭圆。这个椭圆的面积扩展到宽度+1像素和高度+1像素。
参数。
a-这个参数表示椭圆左上角的x坐标。
b-这个参数表示椭圆的左上角的y坐标。
width1-这个参数表示椭圆的宽度。
height1-这个参数表示椭圆的高度。
6.公共抽象的 void setColor (Color)
该方法用于设置图形对象的当前颜色。它将最终变量作为java.awt包中颜色类的值。这一行之后的所有操作都将使用这个特定的颜色。
参数。
c - 新的颜色。
7.公共抽象的 void drawLine (int a1, int b1, int a2, int b2)
这个方法用来在这个图形上下文的坐标系中的点(a1, b1)和(a2, b2)之间用当前的颜色画一条线。
参数。
a1-线的起点的x坐标。
b1- 直线起点的y坐标
a2- 线条结束点的x坐标。
b2- 线条结束点的y坐标。
Java中图形类的例子
下面提到了不同的例子。
例子#1
让我们在java中画一个简单的小程序
代码。
import java.awt.*; import java.awt.event.*; import java.awt.geom.*; public class Demo extends Frame { public Demo(){ prepareWindow(); } @Override public void paint(Graphics g) { g.setColor(Color.GRAY); Font currentFont = new Font("Berlin Sans FB Demi",Font.ITALIC, 24); g.setFont(currentFont); g.setColor(Color.BLUE); g.drawString("Welcome to Graphics Class", 100, 150); g.setColor(Color.GREEN); g.drawLine(100, 200, 400, 200); } public static void main(String[] args){ Demo awtGraphicsDemo = new Demo(); awtGraphicsDemo.setVisible(true); } private void prepareWindow(){ setSize(450,400); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent windowEvent){ System.exit(0); } }); } }
输出。
例子 #2
代码。
import java.awt.*; import java.awt.event.*; import java.awt.geom.*; public class Demo extends Frame { public Demo(){ super("Java AWT Examples"); prepareWindow(); } public static void main(String[] args){ Demo awtGraphicsDemo = new Demo(); awtGraphicsDemo.setVisible(true); } private void prepareWindow(){ setSize(450,400); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent windowEvent){ System.exit(0); } }); } @Override public void paint(Graphics g) { g.setColor(Color.GRAY); Font currentFont = new Font("Berlin Sans FB Demi", Font.ITALIC, 24); g.setFont(currentFont); g.drawString("Welcome to Graphics Class", 100, 150); g.setColor(Color.magenta); g.drawRoundRect(150, 400, 100, 150, 20, 20); g.setColor(Color.CYAN); g.fillRoundRect(400, 400, 150, 120, 20,10); Font newFont1 = new Font("ALGERIAN", Font.ITALIC, 30); g.setFont(newFont1); g.setColor(Color.orange); g.fill3DRect(600, 400, 500, 120, false); g.setColor(Color.blue); g.drawString("Welcome to Graphics Class", 1000, 700); g.drawOval(600,200,400,100); g.drawLine(100, 170, 500, 170); } }
输出。
结论
图形类提供了在屏幕上创建可视化对象所需的所有基本操作,以及与它的状态或字体属性和修改它们有关的所有信息。然而,由于它是一个抽象类,因此它的实例不能直接创建,因此要使用其子类来调用。
推荐文章
这是一份关于Java中图形类的指南。在这里,我们讨论了Java中的图形类是如何工作的,以及例子、语法和参数。你也可以看看下面的文章,以了解更多信息
The postGraphics Class in Javaappeared first onEDUCBA.