我要开始写东西,写总结

import java.awt.*;
import java.awt.event.*;
class MyButton extends Button 
implements ActionListener
{ int x=10,y=10,i=0; 
  Color color[]={Color.red,Color.yellow,Color.green};
  Color c=color[0];
  MyButton()
  { setSize(38,85); 
  setBackground(Color.cyan);
  addActionListener(this);
  }
  public void paint(Graphics g)
  { g.setColor(c);
  g.fillOval(x,y,20,20);  
  }
  public void update(Graphics g)
  { g.clearRect(x,y,20,20);
  paint(g);
  }
  public void actionPerformed(ActionEvent e)
  { i=(i+1)%3;
  c=color[i];
  y=y+23;
  if(y>56)
  y=10;  
  repaint();
  }
}
class WindowCanvas extends Frame
{ WindowCanvas()
  { MyButton button=new MyButton();
  setLayout(null);
  add(button);
  button.setLocation(30,30);
  setBounds(60,125,100,200);
  setVisible(true);
  validate();
  }
}
public class Example7_24
{ public static void main(String args[])
  { new WindowCanvas(); 
  }
}





一、此程序中 validate();这句要不要好像都一样。请问validate();何时用?并用例子说明。
二、此程序模拟红绿灯,可快速点击时会出现两个灯都亮的情况,请问这是问什么?如何改进?
 
 
回复次数: 5

 

  • redduke1202用户头像
  • redduke1202
  • (★及时结贴是一种美德★)
  • 等 级:
#2楼 得分:0回复于:2010-04-01 23:04:13
public void update(Graphics g)
  { g.clearRect(x,y,20,20);
  paint(g);
  }

这里,清除区域大一些,把所有灯的区域都清除掉。

g.clearRect(10,10,20,20+23+23);
 
#3楼 得分:0回复于:2010-04-02 00:27:23
validate();好像是刷新的意思

 

 

#4楼 得分:0回复于:2010-04-02 15:59:24
MFC里是刷新的意思 , java 很可能一样吧
MFC中validate() 是更新数据的意思,就是修改了变量,要把结果在界面上显示出来,就调用该函数更新数据;
 

 

 

#5楼 得分:0回复于:2010-04-05 09:11:31
validate() 当frame的layout或组件更新的 刷新布局
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值