Mediator在Java Swing中的作用
来源:互联网 发布:js网页留言板源代码 编辑:程序博客网 时间:2024/05/21 22:29
Mediator在Swing中可以充当MVC中的Controller的角色,例如:
public class FrmUserManager extends JFrame {
private UserManagerMediator mediator;
private JButton addBtn = new JButton();
private JButton delBtn = new JButton();
private JComboBox userComboBox = new JComboBox();
// 下面是其他一些控件
public FrmUserManager() {
mediator = new UserManagerMediator(this);
initComponent();
}
private initComponent() {
addBtn.addActionListener(mediator.addAction());
delBtn.addActionListener(mediator.deleteAction());
userComboBox.setModel(mediator.userComboBoxModel());
// other operation
}
public JComboBox getUserComboBox() {
return userComboBox;
}
}
public class UserManagerMediator {
private FrmUserManager frmUserManager;
public UserManagerMediator(FrmUserManager frmUserManager) {
this.frmUserManager = frmUserManager;
}
public ActionListener addAction() {
return new ActionListener() {
public void actionPerformed(ActionEvent e) {
JComboBox userComboBox = frmUserManager.getUserComboBox();
DefaultComboBoxModel model = (DefaultComboBoxModel)userComboBox.getModel();
model.addElement(......);
}
};
}
public ActionListener deleteAction() {
return new ActionListener() {
public void actionPerformed(ActionEvent e) {
JComboBox userComboBox = frmUserManager.getUserComboBox();
DefaultComboBoxModel model = (DefaultComboBoxModel)userComboBox.getModel();
model.removeElement(......);
}
};
}
public DefaultComboBoxModel userComboBoxModel() {
// 比如:查询数据库得到数据
DefaultComboBoxModel model = new DefaultComboBoxModel();
// 添加数据
model.addListDataListener(new ListDataListener() {
// 实现一些方法
});
return model;
}
}
View--FrmUserManager,Controller--UserManagerMediator,Model--在控制器中调用
当View的状态改变(如:点击按钮,选择下拉框),调用Mediator中相应方法来更新Model;当Model改变(如:下拉框增加一项),会通过Mediator,更新视图。
- Mediator在Java Swing中的作用
- 反射在Java Swing中的应用
- 反射在Java Swing中的应用
- 反射在Java Swing中的应用
- 反射在Java Swing中的应用
- 反射在Java Swing中的应用
- 反射在Java Swing中的应用
- 反射在Java Swing中的应用
- 反射在Java Swing中的应用
- 反射在Java Swing中的应用
- 反射在Java Swing编程中的应用
- 反射在Java Swing编程中的应用
- 反射在Java Swing编程中的应用
- java 多线程在swing中的应用
- 包在JAVA中的作用
- @override在JAVA中的作用
- static在java中的作用
- JAVA中SWing的作用?
- 数据库设计伴侣 V2.0 中英文版
- Java代理
- 推荐几个免费的PDF to Word文件转换器
- 一个FTP客户端的C#代码
- strcmp
- Mediator在Java Swing中的作用
- asp.net 的一些积累
- [zt]Mashable取代TechCrunch成全球第一科技博客
- 俞敏洪:度过有意义的生命
- 总结MYSQL的优化
- FTP Client library in C#
- MySQL索引分析和优化
- 【藏】盛大宣布以4620万美元收购华友世纪51%股份
- 敏捷规划实践