《
Java程序设计基础》程序设计基础
第6章Java绘图
《Java程序设计基础》程序设计基础复习:复习:1、JTextArea,JScrollPane、,2、下拉式菜单;、下拉式菜单;
JMenuBar,JMenu,JMenuItem,setJMenuBar,add为菜单设置快捷键和加速器;为菜单设置快捷键和加速器;添加事件监听。添加事件监听。
3、弹出式菜单的设计方法;、弹出式菜单的设计方法;
JPopupMenu,,鼠标适配器:鼠标适配器:MouseAdapter
软件工程系
《Java程序设计基础》程序设计基础6.1绘制图形一、和画图相关的几个方法
组件第一次显示在屏幕上的时候b)组件被重新指定大小的时候c)组件被损坏需要重新修复(新修复paint(Graphicsg)(比如此组件部分paint(Graphics被遮掩上a)
1.paint()方法:publicvoid)方法:方法该方法无须由程序调用,
系统自动调用该方法在组件上进行图形绘制。自动调用该方法在组件上进行图形绘制该方法无须由程序调用,系统自动调用该方法在组件上进行图形绘制。)方法2.repaint()方法方法声明原形有以下两种形式。方法声明原形有以下两种形式。)。(1)publicvoidrepaint()。(2)publicvoidrepaint(intx,inty,intwidth,intheight)。height)。当程序中调用repaint()方法时系统将再次执行paint()方法方法时,方法,当程序中调用repaint()方法时,系统将再次执行paint()方法,重新绘制组件上的图形。paint)制组件上的图形。(repaintupdatepaint))方法方法:update(Graphics3.update()方法:publicvoidupdate(Graphicsg)Componet类提供的方法类提供的方法;AWT中:Componet类提供的方法;Swing中JFrame重写了重写了repaint(),update(),Container重写了重写了pain()Swing中:JFrame重写了repaint(),update(),Container重写了pain()
软件工程系
《Java程序设计基础》程序设计基础
覆盖了paint()方法的方法的java.awt.Container子类应当在子类应当在paint()方法中调用覆盖了方法的子类应当在方法中调用super.paint()以保证子部件能被绘制。以保证子部件能被绘制。以保证子部件能被绘制要进行绘图,首先要找到一个类的对象。要进行绘图,首先要找到一个Graphics类的对象。update()方法类的对象方法方法所传递的参数都是Graphics类的对象,因此主要是通类的对象,和paint()方法所传递的参数都是方法所传递的参数都是类的对象过重载它们来进行绘图。
Graphics,二、Graphics类:publicabstractclassGraphics,是一种特Graphics类殊的抽象类,无须通过new实例化,即可直接使用。new实例化殊的抽象类,无须通过new实例化,即可直接使用。如:Graphicsg;
它可以支持两种绘图:它可以支持两种绘图:一种是基本的绘图,画线、矩形、圆等;一种是基本的绘图,如:画线、矩形、圆等;另一种是画图象,主要用于动画制作。另一种是画图象,主要用于动画制作。
软件工程系
《Java程序设计基础》程序设计基础
根据用户声明的类与组件类Component的关系,有两种绘的关系,根据用户声明的类与组件类的关系图方式。图方式。1.声明类是组件类Component的子类.声明类是组件类的子类如果声明的类是组件类Component的子类,则可以重写的子类,如果声明的类是组件类的子类paint(Graphicsg)方法,通过方法,对象g直接在组件上绘方法通过Graphics对象直接在组件上绘对象图。例题一、例题一、TestGraphics1.java2.声明类不是组件类Component的子类.声明类不是组件类的子类publicGraphicsgetGraphics():为组件创建一个图形上下文。为组件创建一个图形上下文。为组件创建一个图形上下文例题二、例题二、TestGraphics2.java
软件工程系
《Java程序设计基础》程序设计基础
综合举例:扩展:综合举例:TestPaint.java(扩展:动画(线程))扩展动画(线程)三、绘图的坐标体系在组件上绘图时的坐标体系为:水平方向为x轴在组件上绘图时的坐标体系为:水平方向为轴,垂直方向为y轴左上角起始点坐标是(0,0),区域内任何直方向为轴,左上角起始点坐标是,一点的坐标用(x,y)表示.一点的坐标用表示