猿问

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

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);
}
}
竟然输出:
1
2
这是为什么

交互式爱情
浏览 301回答 3
3回答

四季花海

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

料青山看我应如是

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

森栏

当一个应用程序窗口第一次显示在屏幕上时,或者当它改变大小或暴露在屏幕上时,窗口就会重绘自己
随时随地看视频慕课网APP

相关分类

Java
我要回答