20.4 中介者与同事类的扩展
图20-9 修改之后的“客户信息管理窗口”界面图
图20-10 增加Label组件类后的“客户信息管理窗口”结构示意图
图20-11 修改之后的“客户信息管理窗口”结构图
- //文本标签类:具体同事类
- class
Label extendsComponent { -
public void update() { -
System.out.println("文本标签内容改变,客户信息总数加1。"); -
} -
}
-
- //新增具体中介者类
- class
SubConcreteMediator extendsConcreteMediator { -
//增加对Label对象的引用 -
public Label label; -
-
public void componentChanged(Component c) { -
//单击按钮 - if(c
== addButton) { -
System.out.println("--单击增加按钮--"); -
list.update(); -
cb.update(); -
userNameTextBox.update(); -
label.update(); //文本标签更新 -
} -
//从列表框选择客户 -
else if(c == list) { -
System.out.println("--从列表框选择客户--"); -
cb.select(); -
userNameTextBox.setText(); -
} -
//从组合框选择客户 -
else if(c == cb) { -
System.out.println("--从组合框选择客户--"); -
cb.select(); -
userNameTextBox.setText(); -
} -
} -
}
- class
Client { -
public static void main(String args[]) { -
//用新增具体中介者定义中介者对象 -
SubConcreteMediator mediator; -
mediator = new SubConcreteMediator(); -
-
Button addBT = new Button(); -
List list = new List(); -
ComboBox cb = new ComboBox(); -
TextBox userNameTB = new TextBox(); -
Label label = new Label(); -
-
addBT.setMediator(mediator); -
list.setMediator(mediator); -
cb.setMediator(mediator); -
userNameTB.setMediator(mediator); -
label.setMediator(mediator); -
-
mediator.addButton = addBT; -
mediator.list = list; -
mediator.cb = cb; -
mediator.userNameTextBox = userNameTB; -
mediator.label = label; -
-
addBT.changed(); -
System.out.println("-----------------------------"); -
list.changed(); -
} -
}
--单击增加按钮-- 列表框增加一项:张无忌。 组合框增加一项:张无忌。 客户信息增加成功后文本框清空。 文本标签内容改变,客户信息总数加1。 ----------------------------- --从列表框选择客户-- 组合框选中项:小龙女。 文本框显示:小龙女。 |
|
【作者:刘伟
http://blog.csdn.net/lovelion】