记录一个咸鱼大学生三个月的奋进生活013
复习Java(学生信息管理系统01界面部分)
首先说一下这个项目背景,这个项目是学校老师委托我做的,是基于Java和SqlServer,MVC设计模式编写而成的,因为当时就刚好学到这块知识了然后就答应了老师做这个项目,整个项目完成一共用了一周时间(包括了给他们把原本的学生信息录入的时间),直到现在那个老师的学院还在用我做的这个信息管理系统。
该项目包含功能:权限操作,增加信息,删除信息,查询信息,修改信息,分类显示信息,持久存储数据等。
而且该项目使用了符合公司开发的MVC分层设计模式,今天先从view界面层开始一步一步开始复习。
每个代码的意思我也在备注里标注的很清楚了,再有不明白的或者改进意见的大家可以在评论区指出!
设置背景(WelcomePanel)类
该类是为了让登录界面实例化然后上图片背景的
package com.sm.framework.view;
// 这是设置背景图片的Jpanel,供登录页面LoginPanel直接实例化使用背景
import java.awt.Graphics;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
public class WelcomePanel extends JPanel{
private ImageIcon img = null;
// 构造方法
public WelcomePanel() {
img = new ImageIcon("./img/login.png"); // 实例化img图片
}
// paintComponent设置背景的方法
@Override
protected void paintComponent(Graphics g) {
// g就相当于背景设置的画笔
g.drawImage(this.img.getImage(), 0, 0, this.getWidth(), this.getHeight(), this);
// g.drawImage(this.图片实例化的命.getImage(), x从哪开始, y从哪开始, this.getWidth(), this.getHeight(), this);
}
}
登录界面(LoginFrame)类
该类是之后供用户登录的界面,里面牵扯到 JavaSwing 的JPanel、JLabel、JTextField、JPasswordField、JButton 以及 精确布局管理器GridBagLayout 的使用,如果不清楚的可以到我的这个文章里仔细看下如何使用:复习javaswing各种组件以及功能
public class LoginFrame extends JFrame{
private MisUser loginUser = null; // 这个loginUser是获取用户输入的用户名以及密码看是否在权限数据库中存在
private JPanel panelBody = null; // 总的bodypanel块
private JLabel labelTitle = null; // 标题panel
private JLabel labelName = null; // 用户名
private JTextField fieldName = null; // 填写用户名文字域
private JLabel labelPassword = null; // 密码
private JPasswordField fieldPassword = null; // 填写密码文字域
private JPanel panelButton = null; // 底部按钮的panel
private JButton buttonLogin = null; // 登录按钮
private JButton buttonReset = null; // 重置按钮
// 窗体的编写
private void init() {
Container content = this.getContentPane(); // 实例化ContentPane
content.setLayout(new BorderLayout()); // 并设置其为BorderLayout
this.panelBody = new WelcomePanel(); // 用背景panel实例化JPanel这样给窗体背景
this.panelBody.setLayout(new GridBagLayout()); // 通过setLayout方法设置GridBagLayout精确布局管理器
this.panelBody.setBorder(BorderFactory.createMatteBorder(1, 1, 1, 1, new Color(24, 108, 224))); // 这是设置边框及颜色的代码,new Color( , , )是通过三元素进行设置
content.add(this.panelBody, BorderLayout.CENTER); // 将panelbody设进content
GridBagConstraints constraints = new GridBagConstraints(); // 实例化GridBagConstraints精确布局管理器constraints放入
this.labelTitle = new JLabel("学生信息管理系统登录");
this.labelTitle.setForeground(Color.WHITE); // setForeground() 设置文字颜色的方法
this.labelTitle.setFont(new Font("楷体", Font.BOLD, 18)); // setFont(new Font("字体", Font.样式, 字体大小)) 设置字体样式的方法
constraints.gridx = 1;
constraints.gridy = 0;