111day(MVC设计模式)

本文介绍了MVC设计模式的基本概念及其实现方式,通过Java示例详细解释了Model(M)、View(V)和Controller(C)之间的关系,并提供了一个课程表设计的实际应用案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《2018年1月30日》【连续111天】

标题:MVC设计模式;

内容:

M:model    V:view   C:control 互相独立,其中,V和C无直接关系,也就是说用户对界面的操作与界面的表现无关,而是通过改变M来改变V;

优点:让每一个部分变得单纯;

其中,Java将V和C合并为JTable,M为TableModle;

示例:
课程表设计:

import javax.swing.event.TableModelListener;
import javax.swing.table.TableModel;

public class KCBData implements TableModel {
	private String[]  title = {"周一","周二","周三","周四","周五","周六","周日",};
	private String[][]  data =new String[8][7];
	public KCBData() {
		for(int i=0;i<8;i++) {
			for(int j=0;j<7;j++) {
				data[i][j]="";
				}
			}
	}
	@Override
	public void addTableModelListener(TableModelListener arg0) {
		// TODO Auto-generated method stub
	}
	@Override
	public Class<?> getColumnClass(int arg0) {
		return String.class;
	}
	@Override
	public int getColumnCount() {
		return 7;
	}
	@Override
	public String getColumnName(int arg0) {
		return title[arg0];
	}
	@Override
	public int getRowCount() {
		return 8;
	}
	@Override
	public Object getValueAt(int arg0, int arg1) {
		return data[arg0][arg1];
	}
	@Override
	public boolean isCellEditable(int arg0, int arg1) {
		return true;
	}
	@Override
	public void removeTableModelListener(TableModelListener arg0) {
		// TODO Auto-generated method stub

	}
	@Override
	public void setValueAt(Object arg0, int arg1, int arg2) {
		data[arg1][arg2] =(String)arg0;
	}

}
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;

public class KCB {

	public static void main(String[] args) {
		JFrame frame =new JFrame();
		JTable table =new JTable(new KCBData());
		JScrollPane pane =new JScrollPane(table);
		frame.add(pane);
		frame.pack();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}

}


 

 

明日计划:学习;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值