高级界面上的效果,都是由控件组成的;与此对应的低级界面,界面效果是通过编程,在画布上画出来的。比如下面的效果:
如图所示,我们画图板由两部分组成:
1、高级界面
白纸以上的部分,即控件,如JFrame,JPanel,JLabel等等。这些都是程序员用C,C++等语言编程,还调用了操作系统底层的函数来实现的组件的绘制。所以,当窗体发生变化(缩小,扩大等等),组件仍保存在窗体上。
2、低级界面
白纸部分,即自身画的图部分。
此时画图调用Graphics的画笔的画图方法,若改变窗体大小,所画的画不一定还保留在窗体上。若我们想要保存图画在窗体上,此时要引入paint方法。
一、画在哪里?
图应该画在画布上,画布放在界面上。
可以画在JFrame或者JPanel中。JPanel最接近画布,所以这里用它来举例。
JPanel中有一个重要的成员函数:
public void paint(Graphics g){}
里面可以包含画图的代码。
二、用什么进行画图?
Graphics
从java.awt.Graphics类文档,会发现Graphics类定义如下:
public abstract class Graphics extends Object
从paint方法中可以不用实例化Graphics对象即可使用。
class MyPanel extends JPanel{
p