Java 桌面版之View层

来自CloudWiki
跳转至: 导航搜索

MVC简介

MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范。它是用一种业务逻辑、数据与界面显示分离的方法来组织代码,将众多的业务逻辑聚集到一个部件里面,在需要改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,达到减少编码的时间。

MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器。

Java8-1.png

客户端功能

Java2-36.png

View层代码

  • V即View视图是指用户看到并与之交互的界面。可以是命令行,也可以是html元素组成的网页界面,或者软件的客户端界面。。MVC的好处之一在于它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,它只是作为一种输出数据并允许用户操纵的方式。

新建窗体

import java.awt.*;
import javax.swing.*;
public class UserInfo extends JFrame{
	public UserInfo() {
		super("电商购物平台-用户信息");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置默认关闭时操作
		setResizable(false);//窗口大小不能改变
		setSize(300,100);//设置窗口大小
		setVisible(true);//设置窗口可见性
	}
	public static void main(String[] args) {
		UserInfo userInfo=new UserInfo();
	}
}

添加组件

在UserInfo类中添加按钮、组件作为成员变量:

private JLabel labelUser=new JLabel("用户登录",JLabel.CENTER);
	private JLabel labelPwd= new JLabel("登录密码",JLabel.CENTER);//“登录密码”标签
private JTextField txtUserID = new JTextField(16);//“登录账号”文本框
private JPasswordField txtPassword=new JPasswordField(16);//密码框
private JButton btnLogon =new JButton("登陆");//登录按钮
private JButton btnSet = new JButton("注册");//重置按钮

将组件添加到面板上

在框架中,添加第一块面板。

//A.创建第一个面板,内部采用网格布局,在其中添加用户登录、用户密码控件
        JPanel centerPane=new JPanel();
    	centerPane.setLayout(new GridLayout(2,2));//步骤1:创建网格布局   	
	centerPane.add(labelUser);//步骤2:将组件添加到面板上
	centerPane.add(txtUserID);		//centerPane.add(labelUser2);
	centerPane.add(labelPwd);
	centerPane.add(txtPassword);		
	this.add(centerPane, BorderLayout.CENTER);
    	
		

在框架中,添加第二块面板。

//B.创建第二个面板,内部采用流式布局,在其中添加用户登录和重置按钮	
    	JPanel southPane=new JPanel();    	
    	southPane.setLayout(new FlowLayout());
    	southPane.add(btnLogon);
    	southPane.add(btnSet);
    	this.add(southPane, BorderLayout.SOUTH);

测试程序,在main方法中添加语句。

public static void main(String[] args) {
		UserInfo userInfo=new UserInfo();
	}

运行结果

Java8-6.png

全部代码

package view;

import java.awt.*;
import javax.swing.*;


public class UserInfo extends JFrame{
	/*** 
	 */
	private static final long serialVersionUID = 1L;
	private JLabel labelUser=new JLabel("用户登录",JLabel.CENTER);
	private JLabel labelPwd= new JLabel("登录密码",JLabel.CENTER);//“登录密码”标签
	private JTextField txtUserID = new JTextField(16);//“登录账号”文本框
	private JPasswordField txtPassword=new JPasswordField(16);//密码框
	//private JLabel labelUser2=new JLabel("@126.com",JLabel.CENTER);
    private JButton btnLogon =new JButton("登陆");//登录按钮
	private JButton btnSet = new JButton("注册");//重置按钮
	
	public UserInfo() {
		super("电商购物平台-用户信息");
		
		//A.创建第一个面板,内部采用网格布局,在其中添加用户登录、用户密码控件
		JPanel centerPane=new JPanel();
    	centerPane.setLayout(new GridLayout(2,2));//步骤1:创建网格布局   	
		centerPane.add(labelUser);//步骤2:将组件添加到面板上
		centerPane.add(txtUserID);
		//centerPane.add(labelUser2);
		centerPane.add(labelPwd);
		centerPane.add(txtPassword);		
		this.add(centerPane, BorderLayout.CENTER);
    	
		//B.创建第二个面板,内部采用流式布局,在其中添加用户登录和重置按钮
    	JPanel southPane=new JPanel();    	
    	southPane.setLayout(new FlowLayout());
    	southPane.add(btnLogon);
    	southPane.add(btnSet);
    	this.add(southPane, BorderLayout.SOUTH);
    	
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置默认关闭时操作
		setResizable(false);//窗口大小不能改变
		setSize(300,100);//设置窗口大小
		setVisible(true);//设置窗口可见性
	}
	public static void main(String[] args) {
		UserInfo userInfo=new UserInfo();
	}
	
}