Java Swing MVC模式实例(笔记备忘)
来源:互联网 发布:java中文文档 编辑:程序博客网 时间:2024/06/18 00:30
MVC模式
- MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。
- Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。
- View(视图) - 视图代表模型包含的数据的可视化。
- Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。
代码展示
TestModel.java
package model;public class TestModel { private String message; public String getMessage(){ return message; } public void setMessage(String message){ this.message=message; }}
TestView.java
package view;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.ArrayList;import java.util.List;import javax.swing.JButton;import javax.swing.JPanel;import javax.swing.JTextArea;public class TestView extends JPanel{ private static final long serialVersionUID = 1L; private JTextArea textArea; private List<ActionListener> listeners; public void addActionListener(ActionListener actionlistener){ listeners.add(actionlistener); } public void setTextArea(String text){ textArea.setText(text); } public TestView() { listeners=new ArrayList<ActionListener>(); setLayout(null); textArea=new JTextArea(); textArea.setBounds(20, 20, 400, 100); add(textArea); JButton textbtn=new JButton("Show Message"); textbtn.setBounds(120, 140, 150, 40); add(textbtn); textbtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { for(int i=0;i<listeners.size();++i){ listeners.get(i).actionPerformed(e); } } }); }}
TestController.java
package controller;import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JFrame;import javax.swing.JPanel;import model.TestModel;import view.TestView;public class TestController { private TestView testview; private TestModel testmodel; public TestController() { testview=new TestView(); testmodel=new TestModel(); testview.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println("suc..."); testmodel.setMessage("test..."); testview.setTextArea(testmodel.getMessage()); } }); } public JPanel getView(){ return testview; } public static void main(String[] args) { TestController testcontroller=new TestController(); JFrame frame=new JFrame("TEST"); frame.setLayout(new BorderLayout()); frame.setBounds(100, 100, 450, 300); frame.getContentPane().add(testcontroller.getView()); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); }}
运行TestController.java,查看结果。
0 0
- Java Swing MVC模式实例(笔记备忘)
- java swing中的MVC模式(二)
- java Swing 中的MVC模式
- 通过JAVA SWING看透MVC设计模式
- 通过Java Swing看透MVC设计模式
- 通过 Java Swing 看透 MVC 设计模式
- 通过 Java Swing 看透 MVC 设计模式
- 通过 Java Swing 看透 MVC 设计模式
- 通过Java Swing看透MVC设计模式
- 通过Java Swing看透MVC设计模式
- 通过Java Swing看透MVC设计模式
- 通过Java Swing看透MVC设计模式
- 通过Java Swing看透MVC设计模式
- 通过Java Swing看透MVC设计模式
- 通过Java Swing看透MVC设计模式
- 通过Java Swing看透MVC设计模式
- swing和mvc模式
- swing之mvc模式
- android SDK manager 无法获取更新版本列表
- 3D编程的四个境界
- openssl unable报错
- 8.31总结
- python学习笔记01--链表的实现
- Java Swing MVC模式实例(笔记备忘)
- deploy zabbix 2.2.10 on ubuntu 14.04 64bit
- 内核模块编译时出现的问题解决
- tomcat JAVA启动参数 JAVA_OPTS
- 有赞商城二次开发有赞商城库存同步无缝对接仓库管理软件订单同步
- 关于jquery定义对象的一种写法!
- 通知
- 1049 自增自减【水题】
- Linux编译Qt提示Failure to find: FORMS