为了账号安全,请及时绑定邮箱和手机立即绑定

如下程序,竟然输出:1 2,为什么paint()方法自动调用了两次?

如下程序,竟然输出:1 2,为什么paint()方法自动调用了两次?

交互式爱情 2022-05-27 14:09:11
import javax.swing.*;import java.awt.*;public class TestVideo1{public static void main(String args[]){Video v=new Video();v.setSize(500,150);v.setVisible(true);v.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}class Video extends JFrame{int j=0;public void paint(Graphics g){System.out.println(++j);}}竟然输出:12这是为什么
查看完整描述

3 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

很简单,这说明你点用了两次Vidoe的paint方法。之所以会这样是因为:
v.setSize(500,150);
v.setVisible(true);
这两个方法导致的,具体你可以看一看JFrame的代码

查看完整回答
反对 回复 2022-05-30
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

// v.setSize(500,150); 把这句注掉,试验,最小化,还原时,会重绘一次。 在此基础上,拉长窗口,重绘两次。即:屏幕显示,与大小改变,都会调用 paint 方法。

查看完整回答
反对 回复 2022-05-30
?
森栏

TA贡献1810条经验 获得超5个赞

当一个应用程序窗口第一次显示在屏幕上时,或者当它改变大小或暴露在屏幕上时,窗口就会重绘自己

查看完整回答
反对 回复 2022-05-30
  • 3 回答
  • 0 关注
  • 300 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号