黑马程序员技术交流社区
标题:
张老师GUI视频中的一点疑问
[打印本页]
作者:
李龙涛
时间:
2011-7-28 15:53
标题:
张老师GUI视频中的一点疑问
import java.awt.*;
import java.awt.event.*;
public class MyButton extends Button {
private MyButton friend=null;
public void setFriend(MyButton friend)
{
this.friend=friend;
}
public MyButton(String title){
super(title);
enableEvents(AWTEvent.MOUSE_MOTION_EVENT_MASK);
}
protected void processMouseMotionEvent(MouseEvent e){
setVisible(false);
friend.setVisible(true);
}
}
import java.awt.*;
import java.awt.event.*;
public class TestMyButton extends Frame{
public TestMyButton()
{
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
dispose();
System.exit(0);
}
});
}
public static void main(String[] args) {
// TODO, add your application code
System.out.println("running TestMyButton!");
TestMyButton mainFrame=new TestMyButton();
MyButton btn1=new MyButton("你来抓我啊1");
MyButton btn2=new MyButton("你来抓我啊2");
btn1.setFriend(btn2);
btn2.setFriend(btn1);
mainFrame.add(btn1,"North");
mainFrame.add(btn2,"South");
mainFrame.setSize(400,400);
mainFrame.setVisible(true);
mainFrame.setTitle("TestMyButton");
btn1.setVisible(false);
}
}
这其中的
private MyButton friend=null;
public void setFriend(MyButton friend)
{
this.friend=friend;
}
与
btn1.setFriend(btn2);
btn2.setFriend(btn1);
的作用不是很理解为什么要这么做有什么作用吗?
如果我理解为这样设置是为了共同调用
protected void processMouseMotionEvent(MouseEvent e){
setVisible(false);
friend.setVisible(true);
}
这个方法?这么理解对吗?
望高手指教
[
本帖最后由 李龙涛 于 2011-07-28 16:01 编辑
]
作者:
匿名
时间:
2011-7-28 16:41
我也觉得可以这么想…就是两个按钮鼠标移动过去的时候调用这个方法。两个人循环调用…不过是各自调用各自的,只是前一个让另一个按钮显示,后一个的监听方法才有效…
作者:
王松朝
时间:
2011-7-28 17:59
我的理解是:居部变量私有化,为了安全;变量不固定是为了扩展方便,比如再加button,是一种编程思想;
至于监听鼠标事件…我估计张老师写代码的时候都没想这么多…编程N久都成习惯了…
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2