paint之Graphics

在paint方法里面,这个Graphics类就相当于一支画笔。而且就画在那个component里面,比如frame。

看例子代码:

import java.awt.*;

public class TestPaint {
    public static void main(String[] args) {
        new PaintFrame();
    }
}

class PaintFrame extends Frame {
    public PaintFrame() {
        setBounds(200,200,640,480);
        setVisible(true);
    }

    public void paint(Graphics g) {//重写
        Color c = g.getColor();//这支画笔有一个画笔它自己的颜色,然后拿到当前这支画笔的颜色。
        g.setColor(Color.red);
        g.fillOval(50,50,30,30);//画一个实心的椭圆,画椭圆是采用内切矩形来画的。50,50是左上角的坐标,30,30是矩形的宽与高。
        g.setColor(Color.green);
        g.fillRect(80,80,40,40);//画一个矩形
        g.setColor(c);//弄回原来那支笔的颜色,这是一个良好的编程习惯。
    }
}

但是大家看,我们并没有调用这个paint方法。那么看见这个paint方法非常特殊,它是自动调用的!

其实这个窗口建造出来之后就有一支画笔graphics,然后你再调用paint方法(自动)之后会把这个画笔传递给你。你只要拿到这只画笔然后重写这个方法,想画什么就画什么就行了。

那么这个paint方法什么时候会被调用呢? 当这个frame需要被重画的时候会被自动调用。比方说,我们的窗口第一次显示的时候会被调用,改变窗口大小的时候会被调用……因为你重新显示嘛那你肯定要把新的东西画出来别人才能看到啊。

时间: 2024-10-14 10:12:40

paint之Graphics的相关文章

C# GDI+之Graphics类 z

GDI+是GDI的后继者,它是.NET Framework为操作图形提供的应用程序编程接口,主要用在窗体上绘制各种图形图像,可以用于绘制各种数据图像.数学仿真等. Graphics类是GDI+的核心,它提供将对象绘制到显式设备的方法.Graphics类封装了绘制直线.曲线.圆形.图像和文本的方法,是一切GDI+操作的基础类.在绘图之前,必须在指定的窗体上创建一个Graphics对象,才能调用Graphics类的方法画图. 一.创建Graphics类对象的的三种方法 1.1 Paint事件 在窗体

浏览器渲染过程

有时候想要进行性能优化时了解浏览器的渲染过程无疑是十分重要的.下面来看 首先介绍一下主流浏览器的渲染引擎: IE:Trident chrome:Blink Safire:webkit Firefox:Gecko Opera:Blink QQ浏览器/微信webview:X5/Blink 可能有很多会感到疑惑:chrome不是webkit么?其实Blink也算是webkit的一种升级吧,前缀还是不变的. 然后介绍一下渲染过程 1.DOM解析(与CSS解析同时进行): 把HTML文档解析成DOM树的过

十三、java_GUI

目录: 一.AWT 二.组件和容器 三.布局管理器 四.事件处理 五.java图形 六.window事件 一.AWT AWT(Abstract Window Toolkit)包括了很多类和接口,用于Java Application的GUI(Graphics User Interface 提醒用户界面)编程 GUI的各种元素(如:窗口,按钮,文本框等)由java类来实现 使用AWT锁涉及的类一般在java.awt包及子包中 Container和Component是AWT中的两个核心类 二.组件和容

Android学习之——图形图像处理(Bitmap、BitmapFactory)(一)

转载自http://blog.csdn.net/csxwc/article/details/10345235 Bitmap是Android系统中的图像处理的最重要的类之一.用它可以获取图像文件信息,对图像进行旋转,剪切,放大,缩小等操作. Bitmap代表一张位图,使我们在开发中常用的资源,下面就对Bitmap进行简单的介绍. Bitmap的获取方法: 1.使用BitmapDrawable BitmapDrawable里封装的图片就是一个Bitmap对象,我们要把Bitmap包装成BitmapD

java语言程序

第一章 Jave语言基础 1.1 Java语言的特点 领会Java语言的特点.关键字 1010-11.Java语言采用多种机制来保证可移植性,其中最主要的是______.虚拟机 1110-11.Java语言是一种 ____强类型语言___ 语言,它约束程序员必须遵守规定编写程序,能让编译器检测出程序中尽可能多的错误. 1.2 Java应用程序和小应用程序 识记      Java应用程序与小应用程序的特点和区别 11.一个应用程序必须在某个类中定义的方法是______.main() 1201-

Android中android.graphics下面的绘制图形类Canvas,Paint,Bitmap,Drawable

1.概念区别: 很多网友刚刚开始学习Android平台,对于Drawable.Bitmap.Canvas和Paint它们之间的概念不是很清楚, 其实它们除了Drawable外早在Sun的J2ME中就已经出现了,但是在Android平台中,Bitmap.Canvas相关的都有所变化. 首先让我们理解下Android平台中的显示类是View,但是还提供了底层图形类android.graphics,今天所说的这些均为graphics底层图形接口. Bitmap - 称作位图,一般位图的文件格式后缀为b

android.graphics.Paint方法setXfermode (Xfermode x...

[java] view plain copy mPaint = new Paint(); mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SCREEN)); 常见的Xfermode(SRC为原图,DST为目标图),把代码中的SRC_IN换成下图指定的模式就会出现对应的效果图. [java] view plain copy Canvas canvas = new Canvas(Src); paint.setXfermode(new

【Android】自己定义View、画布Canvas与画笔Paint

安卓自己定义View事实上非常easy. 这个View能够像<[Android]利用Java代码布局,button加入点击事件>(点击打开链接)一样.利用Java代码生成一系列的组件. 也能够配合画布Canvas与画笔Paint来使用. 以下用一个样例来说明.例如以下图,有一个自己定义布局View.里面摆放着,利用画布Canvas与画笔Paint绘制出来的蓝色正方形与红色文字. 在res\layout\activity_main.xml中.直接像摆放安卓固有组件一样,能够直接使用这个我定义组件

Android使用学习之画图(Canvas,Paint)与手势感应及其应用(乒乓球小游戏)

作为一个没有学习Android的菜鸟,近期一直在工作之外努力地学习的Android的使用. 这周看了下Android的画图.主要是Canvas,Paint等,感觉须要实践下.下午正好有空,就想整一个乒乓球的游戏,算是巩固学的知识. 首先,须要了解下Android的画图须要掌握的经常使用类.包含Canvas,就像一个画板一样,全部的东西都是在其上画的.Paint就是画笔.用其能够画各种基本图形和文字.       Canvas和Paint经常使用的方法就不列举了,这种东西网上到处是.有了这两个东西