Swing的MVC结构

--------------siwuxie095

工程名:TestMVC

包名:com.siwuxie095.mvc

类名:Test.java

工程结构目录如下:

代码:


package com.siwuxie095.mvc;

import java.awt.BorderLayout;

import java.awt.EventQueue;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.border.EmptyBorder;

import javax.swing.JList;

import javax.swing.AbstractListModel;

import javax.swing.event.ListSelectionListener;

import javax.swing.event.ListSelectionEvent;

/**

* 先在中间添加一个 JList 表单

* 给这个 JList 的 model 选项添加 A、B、C、D、E、F

* 最后给这个 JList 添加监听事件

*

* @author siwux

*

*/

/*

* MVC结构:

* Model(模型)+View(视图)+Control(控制)

*

* M:存储一些相关的数据

* V:表达视觉元素

* C:负责它们之间的相互关系,执行程序逻辑和程序的走向

*

*/

public class Test extends JFrame {

private JPanel contentPane;

//将 JList 的声明转移到类中,以便于在监听器中进行访问

JList list;

/**

* Launch the application.

*/

public static
void main(String[] args) {

EventQueue.invokeLater(new Runnable() {

public
void run() {

try {

Test frame = new Test();

frame.setVisible(true);

} catch (Exception e) {

e.printStackTrace();

}

}

});

}

/**

* Create the frame.

*/

public Test() {

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setBounds(100, 100, 450, 300);

contentPane = new JPanel();

contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

contentPane.setLayout(new BorderLayout(0, 0));

setContentPane(contentPane);

//new 出来的是 JList 是
视图(View)

list = new JList();

list.addListSelectionListener(new ListSelectionListener() {

//监听事件---监听器(Control)

public
void valueChanged(ListSelectionEvent e) {

//e.getValueIsAdjusting()==true 表示是在点击鼠标的时候打印,

//如果改成false就表示是在松开的时候打印

//如果没有这个 if 判断,会打印两次

//点击鼠标和松开鼠标都会造成状态的改变,导致方法的二次调用

//先点住鼠标不放,而后慢慢松开就会发现该打印效果

if (e.getValueIsAdjusting()==true) {

//在控制台输出选择值

//每当点击列表时,只要选项值发生变化,就会自动触发监听器

System.out.println(list.getSelectedValue());

}

}

});

//setModel() 则是模型,是数据模型(Model)

list.setModel(new AbstractListModel() {

String[] values = new String[] {"A", "B", "C", "D", "E", "F"};

public
int getSize() {

return values.length;

}

public Object getElementAt(int index) {

return values[index];

}

});

contentPane.add(list, BorderLayout.CENTER);

}

}

运行一览:

如果点击 A B C,控制台会相应输出:

程序的实现:

View:在
Design 界面,将 JList 拖到 contentPane 的中间

Model:点击
JList 的 model 属性,为其添加 A B C D E F

Control:给
JList 添加事件监听,右键->Add event handler->listSelection->valueChanged

Design 界面操作完成后,对应的 Source 界面会自动生成相应的代码,

对这些代码进行增删改 … 即可

【made by siwuxie095】

时间: 2024-11-08 18:55:18

Swing的MVC结构的相关文章

MVC结构

MVC 结构 MVC 是 "Model-View-Controller" 的缩写,即 " 模式 - 视图 - 控制器 " . MVC 结构强制将一个 应用分为模型层.视图层以及控制器.通过三者之间的协调共同响应完成用户的请求,即交互过程. 它们之间的协作关系如图: 上图为 mvc 模式最标准也是最常见的一种形态.从上图可以看出,模型与视图不直接打交道,而是通过控制器,即控制器完全分离了视图与模型.这是 mvc 模式的最大特点之一. 在现实开发中,由于实际需要,开发设

MVC结构简介

本文编译自J2EE的相关文档.MVC(Model-View-Controller)应用程序结构被用来分析分布式应用程序的特征.这种抽象结构能有助于将应用程序分割成若干逻辑部件,使程序设计变得更加容易. MVC结构提供了一种按功能对各种对象进行分割的方法(这些对象是用来维护和表现数据的),其目的是为了将各对象间的耦合程度减至最小.MVC结构本来是为了将传统的输入(input).处理(processing).输出(output)任务运用到图形化用户交互模型中而设计的.但是,将这些概念运用于基于Web

来写一个简单的PHP MVC结构

MVC结构,其实就是三个Model,Contraller,View单词的简称,Model,主要任务就是把数据库或者其他文件系统的数据按照我们需要的方式读取出来.View,主要负责页面的,把数据以html的形式显示给用户.Controller,主要负责业务逻辑,根据用户的 Request进行请求的分配,比如说显示登陆界面,就需要调用一个控制器userController的方法loginAction来显示.云鼎娱乐城 下面我们用PHP来创建一个简单的MVC结构系统. 首先创建单点入口,即bootst

【程序猿笔试面试复习】之中的一个 网络与通信篇(一) 几大网络模型:OSI、TCP/IP、B/S与C/S、MVC结构

9.1网络模型 9.1.1. OSI七层模型 OSI(Open System Interconnection,开放系统互联)七层网络模型称为开放式网络互联參考模型.其为国际标准组织指定的一个指导信息互联.互通和协作的网络规范. 开放是指仅仅要遵循OSI标准,位于世界上不论什么地方的不论什么系统之间都能够进行通信,开放系统是指遵循互联协议的实际系统,如电话系统. 从逻辑上能够将OSI开放系统互联分为七层模型,由下至上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 当中.上三层称

ExtJS MVC结构

大型的客户端应用一般都很难开发.很难组织.也很难维护.随着项目的进展,会发现整个工作在走向失控--需要为项目添加更多的功能.补充更多的开发人员.ExtJS4带来了一种新的应用结构.这种结构不止用于组织代码,也能有效的减少必要的代码量. 这次ExtJS4的应用结构采用了MVC的形式.在这种形式下,Models和Controllers第一次被引入了ExtJS.目前已经有了许多MVC式的结构,这些结构大部分是大同小异.这里是我们定义的MVC结构: Model(模型)是字段及数据的集合(比如一个用户模型

【程序员笔试面试复习】之一 网络与通信篇(一) 几大网络模型:OSI、TCP/IP、B/S与C/S、MVC结构

9.1网络模型 9.1.1. OSI七层模型 OSI(Open System Interconnection,开放系统互联)七层网络模型称为开放式网络互联参考模型.其为国际标准组织指定的一个指导信息互联.互通和协作的网络规范. 开放是指只要遵循OSI标准,位于世界上任何地方的任何系统之间都可以进行通信,开放系统是指遵循互联协议的实际系统,如电话系统. 从逻辑上可以将OSI开放系统互联分为七层模型,由下至上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 其中,上三层称为高层,用

php源码建博客2--实现单入口MVC结构

主要: MVC目录结构 数据库工具类制作 创建公共模型类和公共控制器类 --------------文件结构:-------------------------------------- blog├─index.php  入口文件├─Model 模型│  └─UserModel.class.php 用户模型类├─View 视图│  └─login.html  登录表单页面├─Controller 控制器│  └─UserController.class.php 用户控制器├─Frame 公共使用

基于mvc结构的前端页面框架搭建

前端开发一年了,向大家交流下自己实践总结下来的一点点开发心得.人生难免磕磕碰碰,前进的道路很多,在学习工作上我们都得学会如何让自己过的更高效,代码亦是如此. 下面,开始介绍自己总结的前端框架搭建(布局搭建). 1,项目文件结构. 2,index.html页面内容 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <ti

discuz的MVC结构

首先,我们先介绍一下MVC开发思想简介,MVC的全名是Model-View-Controller是模型-师徒-控制器的缩写,它是一种软件设计思想.使用一种业务逻辑.数据和显示分离的方法资质代码,实现代码复用的最大化. 接下来,我们介绍一下MVC的执行流程,起始点是用户,用户输入数据,把数据交给Controller,Controller主要负责的流程控制,获取GET,POST的值,验证结果等,然后把数据传给模型,Model在此充当的角色是与数据库打交道的,把数据通过Model取出来,最后Contr