超级问题:绘图中的paint,为什么这段代码会不段调用呢?以致于窗口花掉!!why?

JCC0128 2005-05-02 08:23:59
import java.awt.* ;
import java.awt.event.* ;

class MyPanel extends Panel{
int flag = 0 ;

public void paint(Graphics g){

if(flag==0){
setBackground(Color.green) ;
flag++ ;
}
else if(flag==1){
setBackground(Color.red) ;
flag++ ;
}
else if(flag==2){
setBackground(Color.blue) ;
flag=0 ;
}
System.out.println ("hi") ;
}


}

class MyFrame extends Frame{

MyFrame(){

add(new MyPanel()) ;

setSize(300,200) ;
setVisible(true) ;
}
}

class FirstTest{
public static void main(String args[]){
new MyFrame() ;
}
}
...全文
106 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxq520zf 2005-05-04
  • 打赏
  • 举报
回复
............
gtlang78 2005-05-03
  • 打赏
  • 举报
回复
setBackground() 会导致Panel被重画,也就是说会导致paint()被调用,你在paint()里setBackground() 就会导致循环了。

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧