JAVA仓库管理系统——三只松鼠仓库管理系统
功能描述
(1)登录模块:登录信息等存储在数据库中
(2)基本档案管理模块:供货商管理,销售商管理,货品档案管理,仓库管理
(3)采购订货模块:用户可以通过查询条件(客户、订单号、订货日期)进行查询
(4)仓库入出库模块:可以对入出库商品信息进行增删改查等数据操作
(5)人员管理模块:对员工基本信息,联系方式进行增删改查等数据操作
(6)部门管理模块:对部门信息进行增删改查等数据操作

整体功能如此,本仓库系统以三只松鼠仓库管理系统为案例,进行相应界面上的优化,保证界面整洁干练,功能切合实际。

代码链接:https://pan.baidu.com/s/1F7dEBfny5aAU_AKpLpwCiA
提取码:3pxo

功能截图
1、登录模块

2、基本档案管理

3、采购订货模块

4、仓库入出库模块

5、人员管理模块

6、部门管理模块

部分关键代码

1、数据库链接

package com.szss.dao;
import java.sql.*;
public class GetConnection {
private Connection con; //定义数据库连接类对象
private PreparedStatement pstm;
private String user="sa"; //连接数据库用户名
private String password="123456"; //连接数据库密码
private String className="com.microsoft.sqlserver.jdbc.SQLServerDriver"; //数据库驱动
private String url="jdbc:sqlserver://localhost:1433;DatabaseName=db_supermarket"; //连接数据库的URL
public GetConnection(){
try{
Class.forName(className);
}catch(ClassNotFoundException e){
System.out.println("加载数据库驱动失败!");
e.printStackTrace();
}
}
/**创建数据库连接*/
public Connection getCon(){
try {
con=DriverManager.getConnection(url,user,password); //获取数据库连接
} catch (SQLException e) {
System.out.println("创建数据库连接失败!");
con=null;
e.printStackTrace();
}
return con; //返回数据库连接对象
}
public void doPstm(String sql,Object[] params){
if(sql!=null&&!sql.equals("")){
if(params==null)
params=new Object[0];
getCon();
if(con!=null){
try{
System.out.println(sql);
pstm=con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
for(int i=0;i<params.length;i++){
pstm.setObject(i+1,params[i]);
}
pstm.execute();
}catch(SQLException e){
System.out.println("doPstm()方法出错!");
e.printStackTrace();
}
}
}
}
public ResultSet getRs() throws SQLException{
return pstm.getResultSet();
}
public int getCount() throws SQLException{
return pstm.getUpdateCount();
}
public void closed(){
try{
if(pstm!=null)
pstm.close();
}catch(SQLException e){
System.out.println("关闭pstm对象失败!");
e.printStackTrace();
}
try{
if(con!=null){
con.close();
}
}catch(SQLException e){
System.out.println("关闭con对象失败!");
e.printStackTrace();
}
}
}

  2、主菜单设计

package com.szss.mainFrame;
import static javax.swing.BorderFactory.createTitledBorder;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.border.EmptyBorder;
import javax.swing.border.TitledBorder;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel; import com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel;
import com.szss.bean.User;
import com.szss.panel.DepotPanel;
import com.szss.panel.DeptPanel;
import com.szss.panel.FeelWarePanel;
import com.szss.panel.JoinDepotPanel;
import com.szss.panel.MyJPanel;
import com.szss.panel.OutDepotPanel;
import com.szss.panel.PersonnelPanel;
import com.szss.panel.SellPanel;
import com.szss.panel.StockPanel;
import com.szss.panel.WarePanel;
import com.szss.util.Session;
import com.szss.widget.BGPanel;
import com.szss.widget.GlassButton;
import com.szss.widget.SmallScrollPanel; import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JTree;
import javax.swing.JScrollPane;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class RemoveButtomFrame extends JFrame {
private MyJPanel contentPane;
private BGPanel backPanel;
private SmallScrollPanel moduleButtonGroup = null;
private JTree tree;
private JPanel panel;
FeelWarePanel panelFeel = new FeelWarePanel();
JPanel panel_1 = new JPanel();
JLabel fristLabel = new JLabel("基本档案管理");
private BGPanel jPanel = null;
private ButtonGroup buttonGroup = null;
private GlassButton workSpaceButton = null;
private GlassButton progressButton = null;
private GlassButton bookProjectButton = null;
private GlassButton chukuButton = null;
private GlassButton personnelManagerButton = null;
private GlassButton deptManagerButton = null;
JLabel label_1 = new JLabel("您当前的位置是:");
/**
* Create the frame.
*/
public RemoveButtomFrame() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 934, 625);
contentPane = new MyJPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.add(getModuleButtonGroup());
setTitle("三只松鼠管理系统");
contentPane.setLayout(null);
setResizable(false);
JPanel clockpanel = new JPanel();
clockpanel.setBackground(new Color(255,175,175));
clockpanel.setBounds(10, 120, 248, 130);
contentPane.add(clockpanel);
clockpanel.setLayout(null); JPanel panel_1 = new JPanel();
panel_1.setBounds(0, 210, 276, 1);
clockpanel.add(panel_1);
panel_1.setLayout(null);
User user = Session.getUser(); //获取登录用户对象
String info = "<html><body>" + "<font color=#FFFFFF>你 好:</font>"
+ "<font color=yellow><b>" + user.getUserName() + "</b></font>"
+ "<font color=#FFFFFF> 欢 迎 登 录</font>" + "</body></html>"; //定义窗体显示内容 JLabel label = new JLabel(info); //定义显示指定内容的标签对象
label.setBackground(Color.yellow);
label.setBounds(70, 30, 128, 35);
clockpanel.add(label); contentPane.add(getContentPanel()); // 在主窗体中添加 } private BGPanel getContentPanel() {
if (backPanel == null) {
backPanel = new BGPanel();
backPanel.setBackground(new Color(255,175,175));
backPanel.setSize(629, 416); // 内容显示区主面板
backPanel.setLocation(279, 149);
backPanel.setLayout(null); label_1.setHorizontalAlignment(SwingConstants.RIGHT);
label_1.setVerticalAlignment(SwingConstants.BOTTOM);
label_1.setBounds(38, 38, 96, 15);
backPanel.setBorder(createTitledBorder(null, "基本档案管理",
TitledBorder.DEFAULT_JUSTIFICATION,
TitledBorder.TOP, new Font("sansserif", Font.BOLD,
12), new Color(59, 59, 59)));
backPanel.add(label_1);
fristLabel.setBounds(133, 38, 123, 15);
backPanel.add(fristLabel);
panel_1.setBounds(10, 63, 611, 343);
panel_1.setLayout(null);
backPanel.add(panel_1);
JScrollPane scrollPane = new JScrollPane();
panel_1.add(scrollPane);
JScrollPane scrollPane_1 = new JScrollPane();
scrollPane_1.setBackground(new Color(255,175,175));
scrollPane_1.setBounds(0, 0, 138, 334);
panel_1.add(scrollPane_1);
DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode(
"基本档案管理");
DefaultMutableTreeNode childNode1 = new DefaultMutableTreeNode(
"供货商管理");
DefaultMutableTreeNode childNode2 = new DefaultMutableTreeNode(
"销售商管理");
DefaultMutableTreeNode childNode3 = new DefaultMutableTreeNode(
"货品档案管理");
DefaultMutableTreeNode childNode4 = new DefaultMutableTreeNode(
"仓库管理");
rootNode.add(childNode1);
rootNode.add(childNode2);
rootNode.add(childNode3);
rootNode.add(childNode4);
tree = new JTree(rootNode);
scrollPane_1.setColumnHeaderView(tree);
final JPanel sellPanel = new JPanel();
sellPanel.setBackground(new Color(255,175,175));
sellPanel.setBounds(138, 0, 473, 343);
sellPanel.setLayout(null);
panel_1.add(sellPanel); tree.getSelectionModel().setSelectionMode(
TreeSelectionModel.SINGLE_TREE_SELECTION);
TreeSelectionModel treeSelectionModel = tree.getSelectionModel();
treeSelectionModel
.setSelectionMode(TreeSelectionModel.CONTIGUOUS_TREE_SELECTION);
tree.addTreeSelectionListener(new TreeSelectionListener() {
@Override
public void valueChanged(TreeSelectionEvent e) {
if (!tree.isSelectionEmpty()) {
TreePath selectionPaths = tree.getSelectionPath();
Object path = selectionPaths.getLastPathComponent();
DefaultMutableTreeNode node = (DefaultMutableTreeNode) path;
String userObject = (String) node.getUserObject();
repaint();
if (userObject.equals("供货商管理")) {
fristLabel.setText("供货商管理");
sellPanel.removeAll();
sellPanel.add(panelFeel.getMessage()); } else if (userObject.equals("销售商管理")) {
fristLabel.setText("销售商管理");
sellPanel.removeAll();
SellPanel sell = new SellPanel();
sellPanel.add(sell.getMessage());
repaint();
} else if (userObject.equals("货品档案管理")) {
fristLabel.setText("货品档案管理");
sellPanel.removeAll();
WarePanel warePanel = new WarePanel();
sellPanel.add(warePanel.getMessage());
repaint();
} else if (userObject.equals("仓库管理")) {
fristLabel.setText("仓库管理");
sellPanel.removeAll();
DepotPanel depotPanel = new DepotPanel();
sellPanel.add(depotPanel.getMessage());
repaint();
}
}
}
}); }
return backPanel;
} private SmallScrollPanel getModuleButtonGroup() {
if (moduleButtonGroup == null) {
moduleButtonGroup = new SmallScrollPanel();// 创建移动面板
moduleButtonGroup.setBounds(250, 20, 434, 68);
moduleButtonGroup.setOpaque(false);
// 将按钮组面板作为移动面板的视图
moduleButtonGroup.setViewportView(getJPanel());
moduleButtonGroup.getAlphaScrollPanel()
.setViewportView(getJPanel());
// 添加鼠标事件监听器
}
return moduleButtonGroup;
} public BGPanel getJPanel() {
if (jPanel == null) {
GridLayout gridLayout = new GridLayout(); //定义网格布局管理器
gridLayout.setRows(1); //设置网格布局管理器的行数
gridLayout.setHgap(0); //设置组件间水平间距
gridLayout.setVgap(0); //设置组件间垂直间距
jPanel = new BGPanel(); //
// 设置布局管理器
jPanel.setLayout(gridLayout);
// 设置初始大小
jPanel.setPreferredSize(new Dimension(400, 50));
jPanel.setOpaque(false);
// 添加按钮
jPanel.add(getWorkSpaceButton(), null);
jPanel.add(getProgressButton(), null);
jPanel.add(getrukuButton(), null);
jPanel.add(getchukuButton(), null);
jPanel.add(getPersonnelManagerButton(), null);
jPanel.add(getDeptManagerButton(), null);
if (buttonGroup == null) {
buttonGroup = new ButtonGroup();
}
// 把所有按钮添加到一个组控件中
buttonGroup.add(getProgressButton());
buttonGroup.add(getWorkSpaceButton());
buttonGroup.add(getrukuButton());
buttonGroup.add(getchukuButton());
buttonGroup.add(getPersonnelManagerButton());
buttonGroup.add(getDeptManagerButton());
}
return jPanel;
} // 基本档案管理按钮
private GlassButton getWorkSpaceButton() {
if (workSpaceButton == null) {
workSpaceButton = new GlassButton();
workSpaceButton.setActionCommand("基本档案管理"); //设置按钮的动作命令
workSpaceButton.setIcon(new ImageIcon(getClass().getResource(
"/com/szss/frame/buttonIcons/myWorkSpace.png"))); //定义按钮的初始化背景
ImageIcon icon = new ImageIcon(getClass().getResource(
"/com/szss/frame/buttonIcons/myWorkSpace2.png")); //创建图片对象
workSpaceButton.setRolloverIcon(icon); //设置按钮的翻转图片
workSpaceButton.setSelectedIcon(icon); //设置按钮被选中时显示图片
workSpaceButton.setSelected(true);
workSpaceButton.addActionListener(new toolsButtonActionAdapter()); //按钮的监听器
}
return workSpaceButton;
} // 采购进货管理按钮
private GlassButton getProgressButton() {
if (progressButton == null) {
progressButton = new GlassButton();
progressButton.setActionCommand("采购进货");
progressButton.setText("");
progressButton.setIcon(new ImageIcon(getClass().getResource(
"/com/szss/frame/buttonIcons/caigou1.png")));
ImageIcon icon = new ImageIcon(getClass().getResource(
"/com/szss/frame/buttonIcons/caigou2.png"));
progressButton.setRolloverIcon(icon);
progressButton.setSelectedIcon(icon);
progressButton.addActionListener(new toolsButtonActionAdapter());
}
return progressButton;
} // 仓库管理
private GlassButton getrukuButton() {
if (bookProjectButton == null) {
bookProjectButton = new GlassButton();
bookProjectButton.setActionCommand("仓库入库");
// bookProjectButton.setText("图书计划");
ImageIcon icon = new ImageIcon(getClass().getResource(
"/com/szss/frame/buttonIcons/ruku2.png"));
bookProjectButton.setSelectedIcon(icon);
bookProjectButton.setRolloverIcon(icon);
bookProjectButton.setIcon(new ImageIcon(getClass().getResource(
"/com/szss/frame/buttonIcons/ruku1.png")));
bookProjectButton.addActionListener(new toolsButtonActionAdapter());
}
return bookProjectButton;
} // 仓库出库管理
private GlassButton getchukuButton() {
if (chukuButton == null) {
chukuButton = new GlassButton();
chukuButton.setActionCommand("仓库出库");
ImageIcon icon = new ImageIcon(getClass().getResource(
"/com/szss/frame/buttonIcons/chuku1.png"));
chukuButton.setSelectedIcon(icon);
chukuButton.setRolloverIcon(icon);
chukuButton.setIcon(new ImageIcon(getClass().getResource(
"/com/szss/frame/buttonIcons/chuku2.png")));
chukuButton.addActionListener(new toolsButtonActionAdapter());
}
return chukuButton;
} // 人员管理系统
private GlassButton getPersonnelManagerButton() {
if (personnelManagerButton == null) {
personnelManagerButton = new GlassButton();
// personnelManagerButton.setText("人员管理");
personnelManagerButton.setActionCommand("查询及统计系统");
// personnelManagerButton.setCursor(new
// Cursor(Cursor.DEFAULT_CURSOR));
ImageIcon imageIcon = new ImageIcon(getClass().getResource(
"/com/szss/frame/buttonIcons/person2.png"));
personnelManagerButton.setIcon(imageIcon);
ImageIcon icon = new ImageIcon(getClass().getResource(
"/com/szss/frame/buttonIcons/person1.png"));
personnelManagerButton.setRolloverIcon(icon);
personnelManagerButton.setSelectedIcon(icon);
personnelManagerButton.setFocusPainted(false);
personnelManagerButton
.addActionListener(new toolsButtonActionAdapter());
}
return personnelManagerButton;
} // 部门管理系统
private GlassButton getDeptManagerButton() {
if (deptManagerButton == null) {
deptManagerButton = new GlassButton(); deptManagerButton.setActionCommand("查询及统计系统");
// personnelManagerButton.setCursor(new
// Cursor(Cursor.DEFAULT_CURSOR));
ImageIcon imageIcon = new ImageIcon(getClass().getResource(
"/com/szss/frame/buttonIcons/deptButton.png"));
deptManagerButton.setIcon(imageIcon);
ImageIcon icon = new ImageIcon(getClass().getResource(
"/com/szss/frame/buttonIcons/deptButton2.png"));
deptManagerButton.setRolloverIcon(icon);
deptManagerButton.setSelectedIcon(icon);
deptManagerButton.setFocusPainted(false);
deptManagerButton.addActionListener(new toolsButtonActionAdapter());
}
return deptManagerButton;
} class toolsButtonActionAdapter implements ActionListener { @Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == workSpaceButton) {
backPanel.removeAll();
backPanel.add(label_1);
fristLabel.setBounds(133, 38, 123, 15);
backPanel.add(fristLabel);
panel_1.setBounds(10, 63, 611, 376);
backPanel.add(panel_1);
fristLabel.setText("基本档案管理");
repaint();
}
if (e.getSource() == progressButton) {
backPanel.removeAll();
backPanel.add(label_1);
fristLabel.setBounds(133, 38, 123, 15);
backPanel.add(fristLabel);
panel_1.setBounds(10, 63, 611, 386);
StockPanel stockPanl = new StockPanel();
fristLabel.setText("采购订货");
backPanel.add(stockPanl);
repaint();
}
if (e.getSource() == bookProjectButton) {
backPanel.removeAll();
backPanel.add(label_1);
fristLabel.setBounds(133, 38, 123, 15);
backPanel.add(fristLabel);
panel_1.setBounds(10, 63, 611, 386);
JoinDepotPanel joinPanel = new JoinDepotPanel();
backPanel.add(joinPanel);
fristLabel.setText("仓库入库");
repaint();
}
if (e.getSource() == chukuButton) {
backPanel.removeAll();
backPanel.add(label_1);
fristLabel.setBounds(133, 38, 123, 15);
backPanel.add(fristLabel);
panel_1.setBounds(10, 63, 611, 386);
OutDepotPanel outPanel = new OutDepotPanel();
backPanel.add(outPanel);
fristLabel.setText("仓库出库");
repaint();
}
if (e.getSource() == deptManagerButton) {
backPanel.removeAll();
backPanel.add(label_1);
fristLabel.setBounds(133, 38, 123, 15);
backPanel.add(fristLabel);
panel_1.setBounds(10, 63, 611, 386);
DeptPanel outPanel = new DeptPanel();
backPanel.add(outPanel);
fristLabel.setText("部门管理");
repaint();
}
if (e.getSource() == personnelManagerButton) {
backPanel.removeAll();
panel_1.setBounds(10, 63, 611, 386);
PersonnelPanel panel = new PersonnelPanel();
backPanel.add(panel);
repaint();
}
} } }

  

JAVA仓库管理系统(附源码+调试)的更多相关文章

  1. 大文件拆分问题的java实践(附源码)

    引子 大文件拆分问题涉及到io处理.并发编程.生产者/消费者模式的理解,是一个很好的综合应用场景,为此,花点时间做一些实践,对相关的知识做一次梳理和集成,总结一些共性的处理方案和思路,以供后续工作中借 ...

  2. 大文件拆分方案的java实践(附源码)

    引子 大文件拆分问题涉及到io处理.并发编程.生产者/消费者模式的理解,是一个很好的综合应用场景,为此,花点时间做一些实践,对相关的知识做一次梳理和集成,总结一些共性的处理方案和思路,以供后续工作中借 ...

  3. 基于SpringBoot的药店管理系统java药房管理系统(源码+数据库文件+文档)

    注意:该项目只展示部分功能,如需了解,评论区咨询即可. 1.开发环境 开发语言:Java 后台框架:SpringBoot 前端技术:HTML+CSS+JavaScript+Bootstrap+jQue ...

  4. 基于S2SH开发学生考勤管理系统 附源码

    开发环境: Windows操作系统开发工具:Eclipse+Jdk+Tomcat+mysql数据库 运行效果图 源码及原文链接:http://javadao.xyz/forum.php?mod=vie ...

  5. JavaSwing开发简单的银行管理系统 附源码

    开发环境: Windows操作系统开发工具: MyEclipse/Eclipse+Jdk+mysql数据库 运行效果图:

  6. 基于SSH开发银行个人业务管理系统 附源码

    开发环境: Windows操作系统开发工具: MyEclipse+Jdk+Tomcat+MySql数据库 运行效果图

  7. 基于Struts2+Hibernate开发小区物业管理系统 附源码

    开发环境: Windows操作系统开发工具: MyEclipse+Jdk+Tomcat+MySql数据库 运行效果图: 源码及原文链接:https://javadao.xyz/forum.php?mo ...

  8. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(2)-easyui构建前端页面框架[附源码]

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(2)-easyui构建前端页面框架[附源码] 开始,我们有了一系列的解决方案,我们将动手搭建新系统吧. 用 ...

  9. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(32)-swfupload多文件上传[附源码]

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(32)-swfupload多文件上传[附源码] 文件上传这东西说到底有时候很痛,原来的asp.net服务器 ...

  10. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(6)-Unity 2.x依赖注入by运行时注入[附源码]

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(6)-Unity 2.x依赖注入by运行时注入[附源码] Unity 2.x依赖注入(控制反转)IOC,对 ...

随机推荐

  1. netstate查找端口占用

    netstat -nao 列出本机端口占用信息加上|findstr 筛选 各个字段的意思: 协议  本地地址:端口          外部地址:端口        状态           PID 这 ...

  2. 代码随想录训练营day 4|链表基础理论,移除链表元素,设计链表,反转链表

    链表理论基础 链表是一种由指针串联在一起的线性结构,每一个节点都由一个数据域和一个指针域组成. 链表的类型有:单链表.双链表.循环链表. 链表的存储方式:在内存中不连续分布. 链表的定义很多人因为不重 ...

  3. 还在拿flex进行布局吗?快来试试grid网格布局吧

    例: 遇到这种布局要求我们应该怎么办? 方法1:使用flex布局 <style> * { padding: 0; margin: 0; } .gird_Box { width: 100vw ...

  4. Fiddler自动响应

    自动响应 自带了几个自动响应的规则: regex:(?inx).+.jpg$ # 以jpg结尾 这里写的是正则表达式,所以如果要拦截其他格式只需要改请求文件的后缀名即可. regex:(?inx).+ ...

  5. 【微信公众号】记一次微信活动微信公众号分享没有LOGO的解决心路历程

    微信类的活动测过好几次了,以前的开发从来没有出过纰漏,这次也以为很简单.结果一个"分享后没有LOGO的问题",前端开发陆陆续续花了一周时间都不能解决,老是找后端和微信公众号配置问题 ...

  6. Linux网络第五章:yum仓库的灵活部署及NFS共享服务

    目录 一.yum仓库的灵活部署 1.yum基础知识及命令 2.本地yum仓库搭建 3.通过httpd服务建立yum仓库 4.建立国内yum源 二.NFS共享服务 1.NFS基础知识 2.搭建NFS服务 ...

  7. 【SSO单点系列】(6):CAS4.0 之中文乱码

    CAS登录会将登录名回传给客户端以xml的格式   但是回传后乱码客户端无法正确解析 二.解决方法 ServiceValidateController.java private ModelAndVie ...

  8. 阐述智能站变电站时钟同步系统(NTP时间同步服务器)的意义

    阐述智能站变电站时钟同步系统(NTP时间同步服务器)的意义 阐述智能站变电站时钟同步系统(NTP时间同步服务器)的意义 阐述观点只代表本人,如有疑问可加微 ahjzsz 1.概述 在现代电网中,统一的 ...

  9. 南大ics-pa/PA1.1过程及感想

    1.1 一.在红白模拟器上运行超级马里奥游戏 1.将游戏rom文件mario.nes移至~/ics2022/fceux-am/nes/rom文件下,并回到~/ics2022/fceux-am下执行ma ...

  10. 新装Eclipse运行Java程序报错Exception in thread "main" java.lang.UnsupportedClassVersionError

    错误现象:   Exception in thread "main" java.lang.UnsupportedClassVersionError: views/LoginFram ...