当前位置: 代码迷 >> Java相关 >> 张孝祥的这个GUI程序我理解不了
  详细解决方案

张孝祥的这个GUI程序我理解不了

热度:138   发布时间:2006-03-21 05:28:00.0
张孝祥的这个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)
}
}

谢谢!!
搜索更多相关的解决方案: 张孝祥  GUI  

----------------解决方案--------------------------------------------------------

你骗我 明明是两个按钮啊?~setFriend就是在两个按钮间建立关系拉, 这个方法是自定义的,看上面不就知道了吗?? 至于btn1.setVisible(false);这句写了两次,我觉得是笔误.


----------------解决方案--------------------------------------------------------

必须的设置FRIEND,
如果不设置FRIEND就无法实现鼠标悬浮上FRIEND显示,
自身隐藏的效果了@!


----------------解决方案--------------------------------------------------------
两个btn1 的隐藏都是有用的
不信你把f.setVisible(ture)一句改为 f.pack()就发现了
第一句是为了保证初始状态下 只显示一个按钮
----------------解决方案--------------------------------------------------------
  相关解决方案