JAVA初学—关于JFrame图形保存的思路
为什么绘制好的线条或者图形会清空?
在窗口打开,移动窗口进入边界,缩放窗口时,它会自动调用一个paint方法,而这个paint方法中并没有我们绘制的内容。于是,每次进行这些动作时,窗口都相当于绘制了一个空白的内容覆盖了原先我们绘制的图形。
解决方法
重写paint方法。
思路
1.保存我们的画图对象数据。
2.将对象数据数据传入paint方法里。
3.重写paint方法,并让保存好的数据按原来的图形方法绘制。
遇到的问题
1.使用paint报错
重写需要先继承,让class类继承窗口JFrame。
或者
把paint写到了其他函数里面。
2.重写的paint方法是否生效
在paint方法中加入输出语句,进行缩放窗口的操作,如果调试台没有出现语句,那么表示重写并未生效。
原因:paint 使用的Graphic并不是从写好的class类里的得到的,这里的class类指的是代码中继承了JFrame的类。
举个例子:
import java.awt.*;
import javax.swing.JFrame;
public class Window extends JFrame{
//主函数
public static void main(String[] args) {
Window L = new Window();
L.UI();
}</