Java 桌面版之View层
来自CloudWiki
MVC简介
MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范。它是用一种业务逻辑、数据与界面显示分离的方法来组织代码,将众多的业务逻辑聚集到一个部件里面,在需要改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,达到减少编码的时间。
MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器。
客户端功能
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(); }
全部代码
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(); } }