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需要被重画的时候会被自动调用。比方说,我们的窗口第一次显示的时候会被调用,改变窗口大小的时候会被调用……因为你重新显示嘛那你肯定要把新的东西画出来别人才能看到啊。
paint之Graphics的更多相关文章
- C# GDI+之Graphics类 z
GDI+是GDI的后继者,它是.NET Framework为操作图形提供的应用程序编程接口,主要用在窗体上绘制各种图形图像,可以用于绘制各种数据图像.数学仿真等. Graphics类是GDI+的核心, ...
- C# GDI+编程之Graphics类
GDI+是GDI的后继者,它是.NET Framework为操作图形提供的应用程序编程接口,主要用在窗体上绘制各种图形图像,可以用于绘制各种数据图像.数学仿真等. Graphics类是GDI+的核心, ...
- day20 GUI(Graphics User Interface)
顶层容器:JWindow.JFrame.JDialge.JAsplet JFrame,默认布局是边界布局 JFrame的内容面板是:Container. 面板容器:JPanel,默认布局是流布局. 布 ...
- 疯狂Java笔记
第四章: 4.6深入数组 1.栈内存和堆内存 每个方法都会建立自己的内存栈,在这个方法内定义的变量会逐个放入栈内存里,随着方法的执行结束,这个方法的内存栈也将自然销毁.因此,所有在方法中定义的局部变量 ...
- java基础 绘图技术.坦克大战 之java绘图坐标体系(一)
坐标体系介绍 下图说明了java坐标体系.坐标原点位于左上角,以像素为单位,像素是计算机屏幕上最小的显示单位.在java的坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素:第二个 ...
- Double Buffering Windows Forms
Double Buffering Windows Forms As much as we would like it not to be the case, graphics can be slow ...
- Android学习之——图形图像处理(Bitmap、BitmapFactory)(一)
转载自http://blog.csdn.net/csxwc/article/details/10345235 Bitmap是Android系统中的图像处理的最重要的类之一.用它可以获取图像文件信息,对 ...
- Java Draw
简单绘画 直线 矩形 圆 根据矩阵画图 package com.zhoudm; import java.awt.*; import javax.swing.*; public class Draw e ...
- java绘图原理------在窗口界面(或面板上)画出一张或多张图片问题解决方法
/** *@author blovedr * 功能: java绘图原理------在窗口界面(或面板上)画出一张或多张图片问题解决方法 * 日期: 2018年4月28日 16:20 * 注释: ...
随机推荐
- 社交O2O的进化
引言 谁都想在O2O这个狂热的概念下分一杯羹,从O2O兴趣社交延伸到O2O生活服务,移动社交APP也是各显神通. 早在微信4.2版本号里,开机界面里那句"少发微信.多和朋友见见面" ...
- shuf乱序排列
如何从文件中随即选取1000行内容呢?我们可以使用shuf命令 shuf [ 其中,shuf会读取file中的内容,并生成乱序的排列,进而使用head命令,取出前1000行
- Android之——经常使用手机号码功能
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47374415 有些Android手机中会带有一些经常使用号码的功能,比方订餐电话. ...
- JavaScript基础教程复习笔记
document.write("<h1>这是一个标题</h1>"); 您只能在 HTML 输出中使用 document.write.如果您在文档加载后使用该 ...
- Lightoj 1029 - Civil and Evil Engineer
1029 - Civil and Evil Engineer PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limi ...
- 【Selenium】HTML/XML/XPATH基础
Html超文本标记语言 网页上单击右键→查看源文件/查看源代码 Html基本结构 <html> 为文档根元素,所有元素都在内部进行 <head> ...
- easy_install uncompyle6 egg
localhost:~ # easy_install uncompyle6-3.0.1-py3.6.eggProcessing uncompyle6-3.0.1-py3.6.eggCopying un ...
- 【FFT初识】
FFT在用于解决多项式乘法A*B(A和B为多项式,形如a0+a1*x^1+a2*x^2....)的时候,通俗地解释就是: 原理:先根据各自的系数各自转化为对应的向量(O(nlogn)),然后向量相 ...
- [Codeforces Round #461 (Div2)] 题解
[比赛链接] http://codeforces.com/contest/922 [题解] Problem A. Cloning Toys [算法] 当y = 0 , 不可以 当 ...
- BZOJ2874 训练士兵 主席树
[啊 首先 这是道权限题,然后本人显然是没有权限的 23咳3] 最近数据结构做的越来越少..然后 就跟上次一样 ,一做就是三四种不同写法. 等价的题面: 最近GY大神在sc2的天梯中被神族虐得很惨, ...