JAVA学习心得—关于JFrame图形保存的思路

在JAVA学习过程中,发现JFrame中的图形在窗口操作后会被清空,原因是默认paint方法未包含自定义绘制。解决办法是重写paint方法,保存并传入画图对象数据。实现步骤包括:保存画图数据、在paint方法中使用这些数据进行绘制。遇到的问题包括paint方法的正确继承和重写,确保使用的Graphics对象来自正确的JFrame实例。
摘要由CSDN通过智能技术生成

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();
}</
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值