转自:http://blog.sina.com.cn/s/blog_4c7656e6010007tn.html

无色天空

1.Awt简介

1)图形用户界面(GUI)可以通过键盘或鼠标来响应用户的操作。

2)抽象窗口工具包(AWT)是一组Java类,此组Java类允许创建图形用户界面(GUI)

3)AWT提供用于创建生动而高效的GUI的各种组件。

2.创建GUI

1)容器(container)

A.可以存放组件的区域,可在容器上进行绘制和着色

B.java.awt包中的Container类可直接或间接派生出两个常用容器:框架(Frame类)和面板(Panel类)。

C.框架是一个带有边框的独立的窗口。

D.面板是包含在窗口中的一个不带边框的区域。

2)框架(Frame)

A.框架是独立于Applet和浏览器的一个窗口。

B.可以通过以下任一构造函数来创建:

C.Frame():创建一个不含标题的标准窗口

D.Frame(String Title): 创建一个含有标题的窗口,这个标题是由参数title指定的。

E.当一个Frame窗口被创建以后,需要调用setSize()方法来设置窗口的大小,并调用setVisible()来显示窗口。

3)面板 (Panel)

A.面板不是一个单独的窗口,它只是包含在窗口中的一个区域。

B.面板是可以将许多组件组合起来的一种容器。

C.最简单的创建面板的方式就是通过面板的构造函数 Panel() 来进行。

D.必须将面板添加到窗体中。

3.在框架中显示信息

1)所有的图形被画到相关联的窗口中。

2)完全可以直接在框架(Frame)中绘入文本信息,甚至可以直接在框架中绘图。

3)框架经常被设计为一个组件容器。一般首先在一个面板中进行绘制,然后再将这个面板添加到框架。

4.paintComponent 方法

1)JPanel 非常适合于绘制自定义图形

2)其图形对象是作为 paintComponent() 方法的参数获得的。

3)要创建自定义图形,需要编写扩展 JPanel 类的新类。并覆盖父类的paintComponent() 方法:

5.Graphics对象

1)paintComponent方法包含一个Graphics类型的参数。

2)Graphics对象记录针对绘制图形和文本的一系列设置,比如设置的图标或当前颜色、字体等。

3)Java中,所有绘制都必须通过一个图形对象。

6.Graphics对象的局限性

1)可以用Graphics对象绘制的图形是原始图形。

2)对于这些图形,不能使用实数坐标

3)不能绘制虚线或宽度不定的线条

4)不能使用纹理或渐变颜色填充形体

7.Graphics2D对象

为了解决图形对象的局限性,在Java1.1以后的版本中引入了Java 2D

1)Java2D 包括一个 Graphics2D 类,此类扩展了 Graphics 类,所有图形方法都可以配合 Graphics2D对象使用

2)Java 2D 图形的重要功能:

A.颜色和图案:图形可以用渐变颜色和填充图案着色。

B.透明绘制:图形的不透明度通过 α 透明值控制。

C.本地字体:平台上的所有本地字体都可用于绘制文本。

D.画笔的显式控制:可以使用线条的粗细、虚线图案以及段连接样式。

E.坐标系的转换:可以使用平移、缩放、旋转和剪切

8.基本的绘图方法

每个 AWT 组件定义一种传递 Graphics 对象的 paint

方法,绘制便是在该对象上执行。

public void paint(Graphics g) {

 g.setColor(someColor); // 设置颜色

 g.setFont(someLimitedFont); //设置字体

 g.drawString(...);//绘制字符串

 g.drawLine(...); //画线

 g.drawRect(...);   // 绘制图形轮廓

  g.fillRect(...);   // 绘制填充图形

  g.drawPolygon(...); //绘制图形轮廓

  g.fillPolygon(...); //绘制图形轮廓

  ...

}

9.Java 2D 中的基本绘图方法

public void paintComponent(Graphics g) {

  super.paintComponent(g);

  Graphics2D g2d = (Graphics2D)g;//强制转换为Graphics2D

  g2d.setPaint(fillColorOrPattern);

  g2d.setStroke(penThicknessOrPattern);

  g2d.setComposite(someAlphaComposite);

  g2d.setFont(anyFont);

  g2d.setColor(anyColor);

  g2d.translate(...);

  g2d.rotate(...);

  g2d.scale(...);

  g2d.shear(...);

  g2d.setTransform(someAffineTransform);

  SomeShape s = new SomeShape(...);

  g2d.draw(s); // 绘制图形轮廓

  g2d.fill(s); // 绘制填充图形

}

10.Font 类

1)Font 类只有一个构造函数:

       public Font(String name, int style, int pointsize)

–         参数name表示字体的名称。

–         参数style表示样式可以是Font.PLAIN、  Font.BOLD 或 Font.ITALIC

–         参数pointsize表示字体的点数,即以磅为单位的字体大小,可以是 11、12、14、16 等。

11.列出当前平台上所有可用字体

import java.awt.*;

public class ListFonts {

public static void main(String[] args) {

GraphicsEnvironment env = GraphicsEnvironment

.getLocalGraphicsEnvironment();

String[] fontNames = env.getAvailableFontFamilyNames();

System.out.println("可用字体:");

for (int i = 0; i < fontNames.length; i++)

System.out.println(" " + fontNames[i]);

}

}

12.颜色

1)java.awt.Color 类提供了13个可用作标准颜色的常量:

       black(黑色)                    green(绿色)    

       red(红色)       blue(蓝色)

       lightGray(浅灰色) white(白色)  

       cyan(蓝绿色)    magenta(洋红色)            

       yellow(黄色)     darkGray(深灰色)

      orange(橙色)     gray(灰色)   

      pink(粉红色)

2)Color类的构造函数

Color(int red,int green,int blue):使用三个分别代表红、绿、蓝的整数来表示它们混合的颜色。这些值必须在0到255之间。

  Color(float red,float green,float blue):用三个浮点数指定红、绿、蓝的相对混合。

3)设置颜色方法

  如果要修改或设置组件的颜色,可以使用下列几种方法:

  void setColor(Color newColor):设置当前绘制的颜色

  void setForeground(Color):设置前景色

  void setBackground(Color):设置背景色

import java.awt.*;

import javax.swing.*;

class ColorsPanel extends JPanel {

public void paintComponent(Graphics g) {

Font f = new Font("Georgia", Font.ITALIC, 16);

g.setFont(f);

g.setColor(Color.red);

g.drawString("Hello", 75, 100);

g.setColor(new Color(0, 128, 128));

g.drawString("World", 75, 125);

}

}

13.绘制图形

1)在 Java 2D 中,通常先创建 Shape 对象,然后调用 Graphics2D 对象的 draw 或 fill 方法。

2)Java 2D 库以面向对象的方式组合几何形体。

3)java.awt.geom包中囊括了一些有用的Shape实现。如:

A.Line2D (线)

B.Rectangle2D(矩形)

C.Ellipse2D (椭圆)

4)java.awt.Graphics中提供了一些方法用来绘制图形对象中的直线和多边形。方法如下:

    void drawLine(int startX,int startY,int entX,int endY):绘制一条直线

    void drawPolygon(int x[],int y[],int numpoints):绘制多边形轮廓

    void fillPolygon(int x[],int y[],int numpoints):绘制填充多边形

  void drawPolyline (int x[],int y[],int numpoints):绘制顺序连线,如果第一个点和最后一个点不同,该图形不封闭

5)绘制矩形和椭圆

void drawRect(int top, int left, int width, int height):绘制矩形边框

void fillRect(int top, int left,int width, int height) :绘制填充矩形

void drawOval(int top, int left, int width, int height):绘制椭圆边框

void fillOval(int top, int left,int width, int height) :绘制填充椭圆

6)Toolkit 对象

要获得 Toolkit 对象,可以使用 Toolkit 类的静态 getDefaultToolkit 方法。

   Toolkit getDefaultToolkit() :返回缺省工具包。

   Image getImage(String filename) :返回一个将从文件中读取其像素数据的图像。参数filename包含图像文件(例如,GIF 或 JPEG 文件)

   boolean drawImage(Image img, int x, int y, ImageObserver ob)  绘制比例图像。

7)显示图像文件的实例

A.以下提供了从当前目录获取本地图像文件的代码(如果图像文件不在当前目录中,必须提供完整的路径名):

        String name="xyz.gif";

        Image img=Toolkit.getDefaultToolkit().getImage(name);

B.要从网络中获得图像文件,必须提供 URL,例如:

          URL u=new URL(http://www.xyz.com/image.gif);

         Image img= Toolkit.getDefaultToolkit().getImage(u) ;

转载于:https://www.cnblogs.com/woniuzhongdetou/p/3633705.html

JAVA---AWT 图形绘制相关推荐

  1. 【Java AWT 图形界面编程】使用鼠标滚轮缩放 Canvas 画布中绘制的背景图像 ( 绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 )

    文章目录 一.鼠标滚轮缩放的中心点设置为当前鼠标中心点 - 要点分析 1.保存当前鼠标指针指向的位置 2.根据鼠标指针指向的位置以及比例重新计算图片位置 二.绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩 ...

  2. java.awt.Graphics2D绘制流程图基本元素

    java.lang.Object ----java.awt.Graphics ----java.awt.Graphics2D 由于项目需要,要求对用户流程进行图形化展示:用户对自己的操作通过查看流程图 ...

  3. 【Java AWT 图形界面编程】LayoutManager 布局管理器 ④ ( GridLayout 网格布局 | GridBagLayout 网格包布局 )

    文章目录 一.GridLayout 网格布局 二.GridLayout 构造函数 三.GridLayout 网格布局代码示例 四.GridBagLayout 网格包布局 一.GridLayout 网格 ...

  4. 史上最扯Java图形绘制(J2SE)之一JAVA动画效果

    很多主一听说Java界面,一水的头大外带血压高,兄弟我倒觉得没什么必要.           其实Java这东西吧,就简便性和其初衷而言,真他妈就在GUI 这地界是有优势的,单就其2D界面开发的易用性 ...

  5. JAVA————简单的图形绘制界面(教程)

    JAVA----简单的图形绘制界面 我们先要清楚,绘制界面需要什么东西. 1.需要一个窗体来显示我们的界面. 2.需要一个组件(画笔)来让我们绘制图形. 3.需要监听来判断我们选择的画笔以及鼠标对画布 ...

  6. Java入门:绘制简单图形

    在上一节,我们学习了如何使用swing和awt工具创建一个空的窗口,本节学习如何绘制简单图形. 基本绘图介绍 Java中绘制基本图形,可以使用Java类库中的Graphics类,此类位于java.aw ...

  7. Java GUI图形编程 使用awt和swing 制作简易计算器的工具包含源码和讲解 / java练习项目

    系列文章目录 提示:阅读本章之前,请先阅读目录 文章目录 系列文章目录 前言 一.常规配置 1. 设置窗口大小 2. 获取当前屏幕的尺寸 3. 窗口居中 4. 设置窗口名称 5. 添加监听器,关闭窗口 ...

  8. Java 图形用户界面(GUI)java.awt包概述

    AWT是用于创建用户图形界面的一个工具包,提供了一系列用于实现图形界面的组件,如窗口.按钮.文本框.对话框等,在JDK中针对每个组件都提供对应的Java类. 这些类的继承关系: 1.Window Wi ...

  9. java 2 图形设计卷i awt_java 2 图形设计卷i:awt

    java 2 图形设计卷i:awt [2021-02-06 10:44:56]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(&qu ...

  10. java awt 玫瑰图形

    一.序言: 原本在宿舍打打代码,突然间我的一个扑街死党,给我发来这道题,看得我突然一脸懵逼,随后百度下,发现这叫做玫瑰函数既然函数有了,那就可以开干了,本着以点画线的思想,就正式操作起来. 二.正式代 ...

最新文章

  1. osg中运用Shader(osg初级篇2)
  2. 笔录软件在linux系统,Linux下查看已安装软件
  3. VS 远程调试 Azure Web App
  4. 将Android实例导入project
  5. python连接服务器代码_python服务器端收发请求的实现代码
  6. 遍历目录下的文件每250M打包一个文件
  7. 【mysql】时间戳
  8. Linux shell重复执行某命令n次
  9. PowerCmd(命令行增强工具) 2.2 免费版
  10. idea+spring boot+jrebel7.0.14热启动
  11. let和const注意点
  12. scala 排序接口Ordering
  13. Ubuntu Software Center has closed unexpectly解决方案
  14. gstreamer v4l2预览双摄像头
  15. Golang Time互转秒、毫秒
  16. 用JAVA做一个简单的画图软件
  17. 怎么开启远程重启服务器,怎么正确重启服务器
  18. 入门-误差逆传播算法
  19. lisp编程 滑动轴承的auto_「autolisp」Autolisp:利用AuoCAD之Lisp编程案例之智能加工齿轮的演示程序 - seo实验室...
  20. 羊年祝福语(羊年祝福大全)

热门文章

  1. 人工神经网络中为什么ReLu要好过于tanh和sigmoid function?
  2. 重磅丨英伟达刚刚发布全球最大GPU:GTC2018黄仁勋演讲核心内容整理
  3. CCF的A类期刊和会议有哪些?人工智能顶会ACL,ICML,NeurIPS,ICLR论文投稿时间以及影响因子等
  4. 数据挖掘关联规则挖掘改进算法DHP
  5. 使用Android Studio的时候如何查看开发文档,API文档,doc文档,SDK文档
  6. 认知AI的兴起:2025年AI将会发生质的飞跃
  7. 昨夜,5G R16标准正式冻结!5G物联网扬帆起航
  8. 美国再出半导体新法案!1800亿谋求芯片制造振兴
  9. 量子计算机混战:新贵离子 vs 老派超导体
  10. 寒武纪宣布完成B轮融资 整体估值达25亿美元