CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  GUI 设计

张孝祥的这个GUI程序我理解不了,谁能给我讲解一下,不胜感激!!

楼主RUBY_uu()2006-03-21 05:30:25 在 Java / GUI 设计 提问

这个程序就是在一个窗口上显示一个按钮,一旦鼠标移动到这个按钮上,按钮就移动到了其他位置,这样鼠标就永远无法点击到这个按钮。  
   
  import   java.awt.*;  
  import   java.awt.event.*;  
  class   MyButton   extends   Button  
  {  
                  private   MyButton   friend;  
                  public   void   setFriend(MyButton   friend)  
                  {  
                                  this.friend=friend;  
                  }  
                  public   MyButton(String   name)  
                  {  
                                  super(name);  
                                  enableEvents(AWTEvent.MOUSE_MOTION_EVENT_MASK);  
                  }  
                  protected   void   processMouseMotionEvent(MouseEvent   e)  
                  {  
                                  this.setVisible(false);  
                                  friend.setVisible(true);  
                  }  
  }  
  public   class   TestMyButton  
  {  
                  public   static   void   main(String   args[])  
                  {  
                                  MyButton   btn1=new   MyButton("你来抓我呀!");  
                                  MyButton   btn2=new   MyButton("你来抓我呀!");  
                                  btn1.setFriend(btn2);//就是这两句  
                                  btn2.setFriend(btn1);//实现的是什么功能?  
  btn1.setVisible(false);//(1)这句和最后的(2),分别实现了什么功能,为什么要将bnt1隐藏两次?  
                                  Frame   f=new   Frame("it315");  
                                  f.add(btn1,"North");  
                                  f.add(btn2,"South");  
                                  f.setSize(300,300);  
                                  f.setVisible(true);  
                                  btn1.setVisible(false);(2)  
                  }  
  }  
   
  谢谢!! 问题点数:20、回复次数:3Top

1 楼f_acme(沧海一声笑)回复于 2006-03-21 08:12:51 得分 8

btn1.setFriend(btn2);//就是这两句  
  btn2.setFriend(btn1);//实现的是什么功能?  
  ---------  
  这两句不就是把btn1和btn2的Friend关系设置好,因为它利用两个按钮来实现这个功能,一旦鼠标到达某个按钮上,就把这个按钮隐藏,把它的friend显示出来,所以当然要设置好两个按钮的friend关系了;  
   
  btn1.setVisible(false);//(1)这句和最后的(2),分别实现了什么功能,为什么要将bnt1隐藏两次?  
  ----------  
  好像我把后面的一句去掉后跟没有去是一样的效果哦。  
   
   
  ----------  
  PS:是不是它的程序有问题,我好像实现不了那种效果哦,Top

2 楼zdsdiablo(十分钟年华老去)回复于 2006-03-21 11:15:11 得分 12

btn1.setFriend(btn2);//就是这两句  
  btn2.setFriend(btn1);//实现的是什么功能?  
  这两句就是互相关连  
  运行了这段代码  
  public   void   setFriend(MyButton   friend)  
                  {  
                                  this.friend=friend;  
                  }  
  使得后面的操作可以在btn1上btn2的属性,在btn2上btn1的属性.  
  他是通过鼠标事件触发的  
  protected   void   processMouseMotionEvent(MouseEvent   e)  
                  {  
                                  this.setVisible(false);  
                                  friend.setVisible(true);  
                  }  
  也就是说你点btn1时它this.setVisible(false);把自身隐藏掉,显示另一个btn2出来  
  点btn2时它this.setVisible(false);把自身隐藏掉,显示另一个btn1出来  
  这样就看起来是点不到了,实际只是被隐藏了  
   
  Top

3 楼zdsdiablo(十分钟年华老去)回复于 2006-03-21 11:17:37 得分 0

如果还是不理解,你把new   MyButton()里的text换成两组不一样的.一运行就能看懂了Top

相关问题

  • 感激
  • 求张孝祥JAVA的PPT讲稿(30)
  • 高分求张孝祥视频讲座
  • 张孝祥JAVA视频高级篇教程全集
  • 急求JAVA视频教程(张孝祥)!!!111111111
  • 有谁上过张孝祥的JAVA培训班?
  • 张孝祥全套JAVA视频教程(初级篇+高级篇)
  • 求 张孝祥的java视频初级教程
  • 张孝祥JAVA免费讲座(详情请见http://www.fsailing.com)
  • 张孝祥JAVA免费讲座(详情请见http://www.fsailing.com)

关键词

  • 鼠标
  • btn
  • setfriend
  • mybutton
  • setvisible
  • 按钮
  • friend
  • 隐藏
  • 程序
  • 实现

得分解答快速导航

  • 帖主:RUBY_uu
  • f_acme
  • zdsdiablo

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo