同事做了一个MSN功能的客户端工具.在主窗口上有一个TreeList用来显示联系人.每个节点(联系人)双击时弹出一个对话框,用与和对方交互.
可以说这是一个非常简单的GUI而局(抛开通信部分),但双击节点后弹出的窗口总是自动在后面.当主窗口最大化时用于交互的窗口就看不到了,手动切换非常麻烦.
分析:弹出窗口的事件是Node发生的,所以它的Owenr是Node,而Noder的z座标总是小于它所在的主窗口,所以这个弹出窗口总是在主窗口后面.
解决:弹出窗口时然主窗口传给新窗口的构造方法,在构造方法最后将新窗口的Owner设为传入的主窗口.OK
阅读全文>
发表于 @ 2006年10月25日 13:34:00|评论(loading...)|编辑
不变模式(Immutable Pattern)顾名思义,它的状态在它的生命周期内是永恒的(晕,永恒的日月星晨,对象如人,
太渺小,谈不上永恒!),不会改变的.对于其中的不变类(Immutable Class),它的实例可以在运行期间保持状态永远不会被
改变,所以不需要采取共享互斥机制来保护,如果运用得当可以节省大量的时间成本.
请注意上面这段话,不变模式其中的不变类,说明不变类只是不变模式中一个组成部分,不变类和与之相辅的可变
类,以及它们之间的关系才共同构成不变模式!所以在涉及不变模式的时候一定要研究一个类是不变的还是可变的(Mutable).
在jdk中的String类和StringBuffer类就组成了一个不变模式.阅读全文>
发表于 @ 2006年10月25日 11:50:00|评论(loading...)|编辑