AWT Graphics2D类

1 什么是Java AWT Graphics2D

Graphics2D 类扩展了 Graphics 类,以提供对几何、坐标转换、颜色管理和文本布局的更复杂的控制。

2 Java AWT Graphics2D的语法

public abstract class Graphics2D
   extends Graphics

3 Java AWT Graphics2D的构造方法

构造方法 描述
Graphics2D() 构造一个新的 Graphics2D 对象。

4 Java AWT Graphics2D的方法

方法 描述
abstract void addRenderingHints(Map<?,?> hints) 为渲染算法设置任意数量的首选项值。
abstract void clip(Shape s) 将当前 Clip 与指定 Shape 的内部相交,并将 Clip 设置为产生的交集。
abstract void draw(Shape s) 使用当前 Graphics2D 上下文的设置描边 Shape 的轮廓。
void draw3DRect(int x, int y, int width, int height, boolean raised) 绘制指定矩形的 3D 突出显示轮廓。
abstract void drawGlyphVector(GlyphVector g, float x, float y) 使用 Graphics2D 上下文的呈现属性呈现指定 GlyphVector 的文本。
abstract void drawImage(BufferedImage img, BufferedImageOp op, int x, int y) 渲染一个用 BufferedImageOp 过滤的 BufferedImage。
abstract boolean drawImage(Image img, AffineTransform xform, ImageObserver obs) 渲染图像,在绘制之前应用从图像空间到用户空间的变换。
abstract void drawRenderableImage(RenderableImage img, AffineTransform xform) 渲染一个 RenderableImage,在绘制之前应用从图像空间到用户空间的变换。
abstract void drawRenderedImage(RenderedImage img, AffineTransform xform) 渲染一个 RenderedImage,在绘制之前应用从图像空间到用户空间的变换。
abstract void drawString(AttributedCharacterIterator iterator, float x, float y) 根据 TextAttribute 类的规范应用其属性呈现指定迭代器的文本。
abstract void drawString(AttributedCharacterIterator iterator, int x, int y) 根据 TextAttribute 类的规范应用其属性呈现指定迭代器的文本。
abstract void drawString(String str, float x, float y) 使用 Graphics2D 上下文中的当前文本属性状态呈现由指定 String 指定的文本
abstract void drawString(String str, int x, int y) 使用 Graphics2D 上下文中的当前文本属性状态呈现指定字符串的文本。
abstract void fill(Shape s) 使用 Graphics2D 上下文的设置填充 Shape 的内部。
void fill3DRect(int x, int y, int width, int height, boolean raised) 绘制一个用当前颜色填充的 3D 高亮矩形。
abstract Color getBackground() 返回用于清除区域的背景颜色。
abstract Composite getComposite() 返回 Graphics2D 上下文中的当前 Composite。
abstract GraphicsConfiguration getDeviceConfiguration() 返回与此 Graphics2D 关联的设备配置。
abstract FontRenderContext getFontRenderContext() 在此 Graphics2D 上下文中获取 Font 的渲染上下文。
abstract Paint getPaint() 返回 Graphics2D 上下文的当前 Paint。
abstract Object getRenderingHint(RenderingHints.Key hintKey) 返回渲染算法的单个首选项的值。
abstract RenderingHints getRenderingHints() 获取渲染算法的首选项。
abstract Stroke getStroke() 返回 Graphics2D 上下文中的当前 Stroke。
abstract AffineTransform getTransform() 返回 Graphics2D 上下文中当前变换的副本。
abstract boolean hit(Rectangle rect, Shape s, boolean onStroke) 检查指定的 Shape 是否与设备空间中的指定 Rectangle 相交。
abstract void rotate(double theta) 将当前 Graphics2D 变换与旋转变换连接起来。
abstract void rotate(double theta, double x, double y) 将当前的 Graphics2D Transform 与平移的旋转变换连接起来。
abstract void scale(double sx, double sy) 将当前 Graphics2D 变换与缩放变换连接起来 后续渲染根据指定的缩放因子相对于先前的缩放比例进行调整。
abstract void setBackground(Color color) 设置 Graphics2D 上下文的背景颜色。
abstract void setComposite(Composite comp) 设置 Graphics2D 上下文的 Composite。
abstract void setPaint(Paint paint) 设置 Graphics2D 上下文的 Paint 属性。
abstract void setRenderingHint(RenderingHints.Key hintKey, Object hintValue) 设置渲染算法的单个首选项的值。
abstract void setRenderingHints(Map<?,?> hints) 用指定的提示替换渲染算法的所有首选项的值。
abstract void setStroke(Stroke s) 设置 Graphics2D 上下文的 Stroke。
abstract void setTransform(AffineTransform Tx) 覆盖 Graphics2D 上下文中的 Transform。
abstract void shear(double shx, double shy) 使用剪切变换连接当前的 Graphics2D 变换。
abstract void transform(AffineTransform Tx) 根据最后指定的先应用规则,在此 Graphics2D 中使用 Transform 组合一个 AffineTransform 对象。
abstract void translate(double tx, double ty) 将当前 Graphics2D 变换与平移变换连接起来。
abstract void translate(int x, int y) 将 Graphics2D 上下文的原点转换为当前坐标系中的点 (x, y)。

5 Java AWT Graphics2D的例子

让我们看一个简单的Java AWT Graphics2D类示例。

package com.yiidian;

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class AWTGraphicsDemo extends Frame {
       
   public AWTGraphicsDemo(){
      super("一点教程网:Java AWT Examples");
      prepareGUI();
   }

   public static void main(String[] args){
      AWTGraphicsDemo  awtGraphicsDemo = new AWTGraphicsDemo();  
      awtGraphicsDemo.setVisible(true);
   }

   private void prepareGUI(){
      setSize(400,400);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      }); 
   }    

   @Override
   public void paint(Graphics g) {
      Graphics2D g2 = (Graphics2D)g;
      g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
         RenderingHints.VALUE_ANTIALIAS_ON);
      Font font = new Font("Serif", Font.PLAIN, 24);
      g2.setFont(font);
      g2.drawString("Welcome to yiidian.com", 50, 70);
   }
}

输出结果为:

热门文章

优秀文章