一、系统介绍

1.系统功能

用户
1.登录系统
2.信息查询
包含计费标准,当前在场信息,用户历史信息,用户个人信息,出入场信息,当前可用车位。
3.系统管理
包含口令修改,关于,退出。
管理员
1.车场管理
包含车辆入场,车辆出场。
2.信息查询
包含计费标准,当前在场信息,用户历史信息,用户个人信息,出入场信息,当前可用车位。
3.信息维护
包含用户注册,用户修改,用户充值。
4.系统管理
包含管理员注册,口令修改,计费标准管理,关于,退出。

2.环境配置

JDK版本:1.8
Mysql:8.0.13

3.数据库表

charger
park
station
users

4.工程截图

在这里插入图片描述

二、系统展示

1.登录页

在这里插入图片描述

2.用户-主页

在这里插入图片描述

3.用户-信息管理-计费标准

在这里插入图片描述

4.用户-信息管理-当前在场信息

在这里插入图片描述

5.用户-信息管理-用户历史信息

在这里插入图片描述

6.用户-信息管理-用户个人信息

在这里插入图片描述

7.用户-信息管理-出入场信息

在这里插入图片描述

8.用户-信息管理-当前可用车位

在这里插入图片描述

9.用户-系统管理-修改密码

在这里插入图片描述

10.用户-系统管理-关于

在这里插入图片描述

11.管理员-主页

在这里插入图片描述

12.管理员-车场管理-车辆入场

在这里插入图片描述

13.管理员-车场管理-车辆出场

在这里插入图片描述

14.管理员-信息维护-用户注册

在这里插入图片描述

15.管理员-信息维护-用户修改

在这里插入图片描述

16.管理员-信息维护-用户充值

在这里插入图片描述

17.管理员-系统管理-管理员注册

在这里插入图片描述

18.管理员-系统管理-密码修改

在这里插入图片描述

19.管理员-系统管理-计费标准管理

在这里插入图片描述

三、部分代码

Charger.java

package whsdu.se.vo;

public class Charger {
	private String cardtype;
	private String stationtype;
	private int charge;
	public String getCardtype() {
		return cardtype;
	}
	public void setCardtype(String cardtype) {
		this.cardtype = cardtype;
	}
	public String getStationtype() {
		return stationtype;
	}
	public void setStationtype(String stationtype) {
		this.stationtype = stationtype;
	}
	public int getCharge() {
		return charge;
	}
	public void setCharge(int charge) {
		this.charge = charge;
	}
	

}

Park.java

package whsdu.se.vo;

public class Park {
	private int parkid;
	private String startpark;
	private String endpark;
	private int sumpark;
	private int fee;
	private int cardid;
	private int stationid;
	private String stationtype;
	public int getparkid() {
		return parkid;
	}
	public void setOutid(int parkid) {
		this.parkid = parkid;
	}
	public int getSumpark() {
		return sumpark;
	}
	public void setSumpark(int sumpark) {
		this.sumpark = sumpark;
	}
	public int getFee() {
		return fee;
	}
	public void setFee(int fee) {
		this.fee = fee;
	}
	public int getCardid() {
		return cardid;
	}
	public void setCardid(int cardid) {
		this.cardid = cardid;
	}
	public int getStationid() {
		return stationid;
	}
	public void setStationid(int stationid) {
		this.stationid = stationid;
	}
	public String getStartpark() {
		return startpark;
	}
	public void setStartpark(String startpark) {
		this.startpark = startpark;
	}
	public String getEndpark() {
		return endpark;
	}
	public void setEndpark(String endpark) {
		this.endpark = endpark;
	}
	public String getStationtype() {
		return stationtype;
	}
	public void setStationtype(String stationtype) {
		this.stationtype = stationtype;
	}
	

}

Sitinfor.java

package whsdu.se.vo;

public class Sitinfor {
	private int stationid;
	private String stationtype;
	public int getStationid() {
		return stationid;
	}
	public void setStationid(int stationid) {
		this.stationid = stationid;
	}
	public String getStationtype() {
		return stationtype;
	}
	public void setStationtype(String stationtype) {
		this.stationtype = stationtype;
	}
	
	

}

Users.java

package whsdu.se.vo;

public class Users {
	
	private int cardid;
	private String name;
	private String password;
	private String cardtype;
	private int carid;
	private int tel;
	private int overage;
	private String userstype;
	
	public int getCardid() {
		return cardid;
	}
	public void setCardid(int cardid) {
		this.cardid = cardid;
	}
	public String getName() {
		return name;
	}
	public  void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getCardtype() {
		return cardtype;
	}
	public void setCardtype(String cardtype) {
		this.cardtype = cardtype;
	}
	public int getCarid() {
		return carid;
	}
	public void setCarid(int carid) {
		this.carid = carid;
	}
	public int getTel() {
		return tel;
	}
	public void setTel(int tel) {
		this.tel = tel;
	}
	public int getOverage() {
		return overage;
	}
	public void setOverage(int overage) {
		this.overage = overage;
	}
	public String getUserstype() {
		return userstype;
	}
	public void setUserstype(String userstype) {
		this.userstype = userstype;
	}
	
	
	
	
	
	
	
}

DBUtil.java


package whsdu.se.util;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.List;

import javax.swing.JOptionPane;

import whsdu.se.vo.*;


public class DBUtil {
	protected static String dbClassName = "com.mysql.cj.jdbc.Driver";//数据库连接驱动类
	protected static String dbUrl = "jdbc:mysql://localhost:3306/swing_parking?serverTimezone=UTC";//数据库连接URL
	protected static String dbUser = "root";				//数据库用户名
	protected static String dbPwd = "admin";			//数据库密码
	private static Connection conn = null;				//数据库连接对象
	private DBUtil() {										//默认构造函数
		try {
			if (conn == null) {							//如果连接对象为空
				Class.forName(dbClassName);				//加载驱动类
				conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);//获得连接对象
			}
		} catch (Exception ee) {
			ee.printStackTrace();
		}
	}




	private static ResultSet executeQuery(String sql) {	//查询方法
		try {
			if(conn==null)  new DBUtil();  //如果连接对象为空,则重新调用构造方法
			return conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
					ResultSet.CONCUR_UPDATABLE).executeQuery(sql);//执行查询
		} catch (SQLException e) {
			e.printStackTrace();
			return null;				//返回null值
		} finally {
		}
	}




	private static int executeUpdate(String sql) {		//更新方法
		try {
			if(conn==null)  new DBUtil();	//如果连接对象为空,则重新调用构造方法
			return conn.createStatement().executeUpdate(sql);//执行更新
		} catch (SQLException e) {
			e.printStackTrace();
			return -1;
		} finally {
		}
	}



	public static void close() {//关闭方法
		try {
			conn.close();//关闭连接对象		
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			conn = null;	//设置连接对象为null值
		}
	}




	/*
	 * 登录方法
	 */
	public static Users check(String name, String password) {
		Users user=new Users();//操作员信息对象
		String sql = "select * from users where name= '" + name+ "' and password='" + password+"'";//查询字符串
		ResultSet rs = DBUtil.executeQuery(sql);//执行查询
		try {
			while(rs.next()) {//如果查询到了记录
				user.setCardid(rs.getInt("cardid"));
				user.setName(rs.getString("name")) ;
				user.setUserstype(rs.getString("userstype")) ;
				user.setPassword(rs.getString("password"));
				user.setCardtype(rs.getString("cardtype"));
				user.setCarid(rs.getInt("carid"));
				user.setOverage(rs.getInt("overage"));
				user.setTel(rs.getInt("tel"));
			}	
		} catch (SQLException e){
			e.printStackTrace();
		}
		DBUtil.close();	//关闭连接对象
		return user;//返回操作员信息对象
	}

	/*
	 *查询计费标准
	 * */
	public static Charger  searchcharge(String sql){
		Charger charger = new Charger();//计费标准对象
		ResultSet rs = DBUtil.executeQuery(sql);//执行查询
		try {
			while(rs.next()) {//如果查询到了
				charger.setCardtype(rs.getString("cardtype"));//设置计费标准卡的类型
				charger.setCharge(rs.getInt("charge"));//设置计费标准单价
				charger.setStationtype(rs.getString("stationtype"));//设置计费标准车位类型
			}	
		} catch (SQLException e){
			e.printStackTrace();
		}
		DBUtil.close();	//关闭连接对象
		return charger;//返回计费标准对象
	}

	/*
	 * 查询用户个人信息
	 * */
	public static Users searchcominfo(String sql){
		Users user = new Users();//用户对象
		ResultSet rs = DBUtil.executeQuery(sql);
		try {
			while(rs.next()) {
				user.setCardid(rs.getInt("cardid"));
				user.setName(rs.getString("name")) ;
				user.setUserstype(rs.getString("userstype")) ;
				user.setPassword(rs.getString("password"));
				user.setCardtype(rs.getString("cardtype"));
				user.setCarid(rs.getInt("carid"));
				user.setOverage(rs.getInt("overage"));
				user.setTel(rs.getInt("tel"));
			}	
		} catch (SQLException e){
			e.printStackTrace();
		}
		DBUtil.close();
		return user;
	}

	/*
	 * 实现出入场查询
	 * 
	 * */
	public static int count(String sql){
		int i = 0;
		ResultSet rs = DBUtil.executeQuery(sql);//执行查询
		try {
			while(rs.next()) {//如果查询到了
				i = rs.getInt(1);//得到count
			}	
		} catch (SQLException e){
			e.printStackTrace();
		}
		DBUtil.close();	//关闭连接对象
		return i ; //返回i
	}


	/*
	 * 
	 * 实现普通用户注册
	 * 
	 * */
	public static int comzhuce(int cardid,String name,String password,String cardtype,int overage,int tel,int carid){
		int i=0;
		try{
			String sql="insert users(cardid,name,password,cardtype,overage,tel,carid,userstype) values("+cardid+",'"+name+"','"+password+"','"+cardtype+"',"+overage+","+tel+","+carid+",'普通用户')";//将用户信息插入数据库中
			i=DBUtil.executeUpdate(sql);
		}catch(Exception e){
			e.printStackTrace();
		}
		return i;
	}


	/*
	 * 
	 * 实现管理员注册
	 * 
	 * */
	public static int manzhuce(int cardid,String name,String password){
		int i=0;
		try{
			String sql="insert users(cardid,name,password,userstype) values("+cardid+",'"+name+"','"+password+"',"+"'管理员')";//将管理员信息插入到数据库中
			i=DBUtil.executeUpdate(sql);
		}catch(Exception e){
			e.printStackTrace();
		}
		return i;
	}

	/*
	 * 收费标准修改
	 * 
	 * 
	 * */

	public static void gaicharge(String sql){
		try{
			DBUtil.executeUpdate(sql);
		}catch(Exception e){
			e.printStackTrace();
		}
		return ;
	}


	/*
	 * 充值
	 * */
	public static void chongzhi(String sql){
		try{
			DBUtil.executeUpdate(sql);
		}catch(Exception e){
			e.printStackTrace();
		}
		return ;
	}

	/*
	 * 车位查询
	 * */

	public static Sitinfor chewei(String sql){
		Sitinfor sit = new Sitinfor();//车位信息对象
		ResultSet rs = DBUtil.executeQuery(sql);//执行查询
		try {
			while(rs.next()) {//如果查询到了
				sit.setStationid(rs.getInt("stationid"));
				sit.setStationtype(rs.getString("stationtype"));
			}	
		} catch (SQLException e){
			e.printStackTrace();
		}
		DBUtil.close();	//关闭连接对象
		return sit;
	}

	/*
	 * 当前可用车位信息
	 * */
	public static List nowstation(){
		List list=new ArrayList();
		String sql= "select stationid,stationtype from station  where stationid not in (select distinct stationid  from park where endpark is  null)";//查询当前可用车位的信息
		ResultSet rs=DBUtil.executeQuery(sql);
		try {
			while(rs.next()){
				Sitinfor sit = new Sitinfor();//车位信息对象
				sit.setStationid(rs.getInt("stationid"));//设定车位信息的车位号
				sit.setStationtype(rs.getString("stationtype"));//设定车位信息的车位类型
				list.add(sit);//将查询得到的车位信息加入到ArrayList()中
			}
		} catch (SQLException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
		return list;
	}

	/*
	 * 车辆入场
	 * 
	 */
	public static int parkin(int cardid,int stationid,String stationtype,String startpark){
		int i=0;
		try{
			String sql="insert into park(cardid,stationid,stationtype,startpark) values("+cardid+","+stationid+",'"+stationtype+"','"+startpark+"')";//将入场车辆信息插入到数据库中
			i=DBUtil.executeUpdate(sql);
		}catch(Exception e){
			e.printStackTrace();
			System.out.print(1);
		}
		return i;
	}


	/*
	 * 更改密码
	 * */	
	public static int Updatepass(String password,String name){
		int i=0;
		try{
			String sql="update users set password='"+password+"' where  name='"+name+"'";//更新数据库中的用户密码
			i=DBUtil.executeUpdate(sql);
		}catch(Exception e){
			e.printStackTrace();
		}
		DBUtil.close();
		return i;
	}


	/*
	 * 出场
	 * 
	 * */
	public static void Updatepark(String endpark,int fee,int sumpark,int cardid,String startpark){
		try{
			String sql = "update park set endpark = '"+endpark+"' ,sumpark = "+sumpark +",fee ="+ fee +" where cardid ="+ cardid+" and startpark ='" +startpark+"'";
			DBUtil.executeUpdate(sql);
		}catch(Exception e){
			e.printStackTrace();
		}
		DBUtil.close();
	}



	//在出场时,用于更新用户的余额
	public static void Updateoverage(int cardid,int overage){
		try{
			String sql = "update users set overage = "+overage +" where cardid = "+cardid;
			DBUtil.executeUpdate(sql);
		}catch(Exception e){
			e.printStackTrace();
		}
		DBUtil.close();
	}



	/*
	 * 用户出场
	 * */
	public static Park parkout(String sql){
		Park park = new Park();
		ResultSet rs = DBUtil.executeQuery(sql);//执行查询
		try {
			while(rs.next()) {//如果查询到了
				park.setStartpark(rs.getString("startpark"));
				park.setCardid(rs.getInt("cardid"));
				park.setEndpark(rs.getString("endpark"));
				park.setFee(rs.getInt("fee"));
				park.setStationid(rs.getInt("stationid"));
				park.setSumpark(rs.getInt("sumpark"));
			}	
		} catch (SQLException e){
			e.printStackTrace();
		}
		DBUtil.close();	//关闭连接对象
		return park;
	}


	/*
	 * 根据cardid查询历史记录
	 * 
	 * */
	public static List selectcardid(int cardid){
		List list=new ArrayList();
		String sql= "select * from park where cardid ="+ cardid+" and sumpark is not null";
		ResultSet rs=DBUtil.executeQuery(sql);
		try {
			while(rs.next()){
				Park park = new Park();
				park.setCardid(rs.getInt("cardid"));
				park.setStationid(rs.getInt("stationid"));
				park.setStartpark(rs.getString("startpark"));
				park.setEndpark(rs.getString("endpark"));
				park.setSumpark(rs.getInt("sumpark"));
				park.setFee(rs.getInt("fee"));
				list.add(park);
			}
		} catch (SQLException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
		return list;
	}


	/*
	 * 查询当前在场信息
	 * */
	public static List now(){
		List list=new ArrayList();
		String sql= "select * from park where endpark is  null";
		ResultSet rs=DBUtil.executeQuery(sql);
		try {
			while(rs.next()){
				Park park = new Park();
				park.setCardid(rs.getInt("cardid"));
				park.setStationid(rs.getInt("stationid"));
				park.setStartpark(rs.getString("startpark"));
				list.add(park);
			}
		} catch (SQLException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
		return list;
	}


	/*
	 * 
	 * 更改用户信息
	 * */
	public static int updateuser(int cardid,String name,String password,String cardtype,int overage,int tel,int carid){
		int i=0;
		try{
			String sql= "update users set name = '"+name+"',password = '"+password +"',cardtype = '"+cardtype +"',overage = "+overage+",tel = "+tel+",carid = "+carid+" where cardid ="+ cardid;
			i=DBUtil.executeUpdate(sql);
		}catch(Exception e){
			e.printStackTrace();
		}
		return i;
	}


	/*
	 * 
	 * 查询所有成员
	 * */
	public static List selectuser(){
		List list=new ArrayList();
		String sql= "select * from users where userstype = '普通用户'";
		ResultSet rs=DBUtil.executeQuery(sql);
		try {
			while(rs.next()){
				Users user  = new Users();
				user.setCardid(rs.getInt("cardid"));
				user.setName(rs.getString("name")) ;//设置操作员用户名
				user.setUserstype(rs.getString("userstype")) ;
				user.setPassword(rs.getString("password"));//设置管理员密
				user.setCardtype(rs.getString("cardtype"));
				user.setCarid(rs.getInt("carid"));
				user.setOverage(rs.getInt("overage"));
				user.setTel(rs.getInt("tel"));
				list.add(user);
			}
		} catch (SQLException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
		return list;
	}


	/*
	 * 删除用户
	 * 
	 * */

	public static int Deluser(int cardid){
		int i=0;
		try{
			String sql = "delete from users where cardid ="+ cardid;
			i=DBUtil.executeUpdate(sql);
		}catch(Exception e){
			e.printStackTrace();
		}
		DBUtil.close();
		return i;
	}

}

LoginFrame.java

/*
 * 该ui类用于显示登录窗口
 * */
package whsdu.se.view;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;

import whsdu.se.util.DBUtil;
import whsdu.se.view.*;
import whsdu.se.vo.Users;

public class LoginFrame extends JFrame {
	private JPasswordField password;
	private JTextField username;
	private JButton login;
	private JButton reset;
	private static Users user;

	//这样写的目的是为了操作数据库,老师写的虽然好,但是对于操作数据库并不方便
	public LoginFrame() {
		super();
		final BorderLayout borderLayout = new BorderLayout();	//创建布局管理器
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);			//设置关闭按钮处理事件
		borderLayout.setVgap(10);								//设置组件之间垂直距离			
		getContentPane().setLayout(borderLayout);				//使用布局管理器
		setTitle("停车场管理系统");							//设置窗体标题

		setSize(300, 180);//设置窗体大小
		this.setLocationRelativeTo(null);

		final JPanel mainPanel = new JPanel();					//创建主面板
		mainPanel.setLayout(new BorderLayout());				//设置边框布局
		mainPanel.setBorder(new EmptyBorder(1, 1, 10, 10));		//设置边框为0
		getContentPane().add(mainPanel);						//在窗体中加入主面板

		final JPanel centerPanel = new JPanel();				//添加一个中心面板	
		final GridLayout gridLayout = new GridLayout(3, 2);		//创建网格布局管理器
		centerPanel.setLayout(gridLayout);						//使用布局管理器
		mainPanel.add(centerPanel);//添加到主面板

		JLabel zhanwei1 = new JLabel();	//创建卡号标签
		centerPanel.add(zhanwei1);				//添加到中心面板
		JLabel zhanwei2 = new JLabel();	//创建卡号标签
		centerPanel.add(zhanwei2);				//添加到中心面板

		final JLabel userNamelabel = new JLabel();				//创建一个标签
		userNamelabel.setHorizontalAlignment(SwingConstants.CENTER);//设置对齐方式
		userNamelabel.setPreferredSize(new Dimension(0, 0));	//设置组件大小
		userNamelabel.setMinimumSize(new Dimension(0, 0));		//设置组件最小的大小
		centerPanel.add(userNamelabel);							//添加到中心面板
		userNamelabel.setText("账号:");						//设置标签文本
		username = new JTextField(20);							//创建文本框
		//username.setColumns(20);
		username.setPreferredSize(new Dimension(0, 0));			//设置组件大小
		centerPanel.add(username);								//添加到中心面板

		final JLabel passwordLabel = new JLabel();					//创建一个标签
		passwordLabel.setHorizontalAlignment(SwingConstants.CENTER);//设置对齐方式
		centerPanel.add(passwordLabel);								//添加到中心面板
		passwordLabel.setText("密码:");							//设置标签文本
		password = new JPasswordField(20);							//创建密码框	
		//password.setDocument(new MyDocument(6));					//设置密码长度为6
		password.setEchoChar('*');									//设置密码框的回显字符
		centerPanel.add(password);									//添加到中心面板

		final JPanel southPanel = new JPanel();//新增一个底部面板
		southPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
		mainPanel.add(southPanel, BorderLayout.SOUTH);				//添加到主面板中
		login = new JButton();
		login.addActionListener(new LoginAction());				//添加监听器
		login.setText("登录");										//设置按钮文本
		southPanel.add(login);										//把按钮添加到底部面板
		reset = new JButton();
		reset.addActionListener(new ResetAction());				//添加监听器
		reset.setText("重置");										//设置按钮文本
		southPanel.add(reset);										//把按钮添加到底部面板
		setVisible(true);											//设置创建可见
		setResizable(false);										//设置窗体不可改变大小
	}

	class ResetAction implements ActionListener {//实现重置按钮的监听
		public void actionPerformed(final ActionEvent e){

			password.setText("");//设置密码输入框为空
			username.setText("");//设置用户名输入框为空

		}
	}

	class LoginAction implements ActionListener {//实现登陆按钮的监听
		public void actionPerformed(final ActionEvent e) {
			user = DBUtil.check(username.getText(),new String(password.getText()));
			if(user.getName()!=null) {
				if(user.getUserstype().equals("管理员")) {
					MdiFrame frame1 = new MdiFrame();//创建一个主窗体
					//frame1.setEnabled(true);//设置其可见
					LoginFrame.this.setVisible(false);//设置登录窗体为不显示
				}
				else {//判断用户名是否为null
					MdiFrame frame = new MdiFrame();//创建一个主窗体
					frame.disMenu();
					//frame.setEnabled(true);//设置其可见
					LoginFrame.this.setVisible(false);//设置登录窗体为不显示
				}
			}
			else {
				JOptionPane.showMessageDialog(null,"请输入正确的用户名和密码!");//弹出提示框
				username.setText("");//设置用户名输入框为空
				password.setText("");//设置密码输入框为空
			}
		}
	}
	//这里的作用是因为在更改口令时需要登陆时的用户名
	public static Users getUser() {
		return user;
	}
	public static void setUser(Users user) {
		LoginFrame.user = user;
	}
	
	public static void main(String[] args) {
		new LoginFrame();	
	}
}

MdiFrame.java

/*
 * 该ui类是主窗口
 * */
package whsdu.se.view;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.SystemColor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.border.LineBorder;

import whsdu.se.common.*;
import whsdu.se.view.*;
import whsdu.se.vo.*;

public class MdiFrame extends JFrame implements ActionListener {
	//关键!MDIDesktopPane(该类实际继承了 JDesktopPane) 用来容纳子窗体
	//即使子窗体最大化也仅仅限制在该容器的范围之内
	private MDIDesktopPane desktop = new MDIDesktopPane();
	//菜单条
	private JMenuBar menuBar = new JMenuBar();
	//菜单
	private JMenu mnuPark = new JMenu("车场管理");
	private JMenu mnuQuery = new JMenu("信息查询");
	private JMenu mnuSever = new JMenu("信息维护");
	private JMenu mnuManSes = new JMenu("系统管理");
	//菜单项
	private JMenuItem munParkIn = new JMenuItem("车辆入场");
	private JMenuItem mnuParkOut = new JMenuItem("车辆出场");
	private JMenuItem munCharge = new JMenuItem("计费标准");
	private JMenuItem mnuNowInfo = new JMenuItem("当前在场信息");
	private JMenuItem mnuHistory = new JMenuItem("用户历史信息");
	private JMenuItem mnuComUsersInfo = new JMenuItem("用户个人信息");
	private JMenuItem mnuInOut = new JMenuItem("出入场信息");
	private JMenuItem mnuComZhuCe = new JMenuItem("用户注册");
	private JMenuItem mnuComIdentity = new JMenuItem("用户修改");
	private JMenuItem mnuManZhuCe = new JMenuItem("管理员注册");
	private JMenuItem mnuManIdentity = new JMenuItem("口令修改");
	private JMenuItem mnuManCharge = new JMenuItem("计费标准管理");
	private JMenuItem mnumancharge = new JMenuItem("用户充值");
	private JMenuItem mnunowstation = new JMenuItem("当前可用车位信息");
	private JMenuItem mnuabout = new JMenuItem("关于");
	private JMenuItem mnuduichu = new JMenuItem("退出");
	private JScrollPane scrollPane = new JScrollPane();
	private Users user = LoginFrame.getUser(); 
	
	//主窗体构造方法
	public MdiFrame() {
		desktop.setOpaque(false);  //JPanel 透明模式
		ImageIcon img = new ImageIcon("E:/java练习/carsituation_man/res/main.jpg");  //创建一个图片路径
		JLabel background = new JLabel(img);  //创建个带背景图片的JLabel
		background.setIcon(img);
		this.getLayeredPane().add(background,new Integer(Integer.MIN_VALUE));
		background.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());
		desktop.add(background);
		setMenu();
		setTitle("停车场管理系统");
		scrollPane.getViewport().add(desktop);
		getContentPane().setLayout(new BorderLayout());
		getContentPane().add(scrollPane, BorderLayout.CENTER);
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		this.setBounds(280,119,800, 600);
		this.setVisible(true);
		this.setLocationRelativeTo(null);

	}

	/**
	 * 为窗体添加菜单并注册监听器
	 * 只写了部分菜单
	 */
	private void setMenu(){
		//车场管理菜单
		mnuPark.add(munParkIn);
		munParkIn.addActionListener(this);
		mnuPark.add(mnuParkOut);
		mnuParkOut.addActionListener(this);
		//信息查询菜单
		mnuQuery.add(munCharge);
		munCharge.addActionListener(this);
		mnuQuery.add(mnuNowInfo);
		mnuNowInfo.addActionListener(this);
		mnuQuery.add(mnuHistory);
		mnuHistory.addActionListener(this);
		mnuQuery.add(mnuComUsersInfo);
		mnuComUsersInfo.addActionListener(this);
		mnuQuery.add(mnuInOut);
		mnuInOut.addActionListener(this);
		mnuQuery.add(mnunowstation);
		mnunowstation.addActionListener(this);
		//信息维护菜单
		mnuSever.add(mnuComZhuCe);
		mnuComZhuCe.addActionListener(this);
		mnuSever.add(mnuComIdentity);
		mnuComIdentity.addActionListener(this);
		mnuSever.add(mnumancharge);
		mnumancharge.addActionListener(this);
		//系统管理菜单
		mnuManSes.add(mnuManZhuCe);
		mnuManZhuCe.addActionListener(this);
		mnuManSes.add(mnuManIdentity);
		mnuManIdentity.addActionListener(this);
		mnuManSes.add(mnuManCharge);
		mnuManCharge.addActionListener(this);
		mnuManSes.add(mnuabout);
		mnuabout.addActionListener(this);
		mnuManSes.add(mnuduichu);
		mnuduichu.addActionListener(this);
		
		//添加到菜单栏
		menuBar.add(mnuPark);
		menuBar.add(mnuQuery);
		menuBar.add(mnuSever);
		menuBar.add(mnuManSes);
		//菜单栏添加到主窗体
		setJMenuBar(menuBar);
	}

	//如果是普通用户,将不允许使用的菜单项禁止使用
	public void disMenu() {
		//将车场管理、信息维护、系统管理对普通用户都不可用
		mnuPark.setEnabled(false);
		mnuSever.setEnabled(false);
		mnuManZhuCe.setEnabled(false);
		mnuManCharge.setEnabled(false);
	}

	//点击菜单项出现相应的子窗体
	public void actionPerformed(ActionEvent ae) {

		//如果允许同时打开多个子窗口,可以用该方法获得所有子窗口对象数组
		JInternalFrame[] jiFrame = desktop.getAllFrames();  

		//如果只允许同时打开一个,可以用该方法移除现有窗口
		//desktop.removeAll();  

		//获得点击的菜单名称
		String mnuName = ae.getActionCommand();

		//根据菜单名称决定显示的子窗口,可以按下面的格式为每一个子菜单指定显示的子窗口
		if(mnuName.equals("车辆入场")) {
			//MdiFrame.addIFrame(new ParkInFrame(),BorderLayout.CENTER);
			desktop.add(new ParkInFrame(),BorderLayout.CENTER);
		}
		else if(mnuName.equals("车辆出场")) {
			desktop.add(new ParkOutFrame(),BorderLayout.CENTER);
		}

		else if(mnuName.equals("计费标准")) {
			desktop.add(new ChargeFrame(),BorderLayout.CENTER);
		}
		else if(mnuName.equals("当前在场信息")) {
			desktop.add(new NowInfoFrame(),BorderLayout.CENTER);
		}
		else if(mnuName.equals("用户个人信息")) {
			if(user.getUserstype().equals("管理员"))
			desktop.add(new ComUsersInfoFrame(),BorderLayout.CENTER);
			else
				desktop.add(new ComUsersInfoFrame1(),BorderLayout.CENTER);
		}
		else if(mnuName.equals("用户历史信息")) {
			desktop.add(new HistoryFrame(),BorderLayout.CENTER);
		}
		else if(mnuName.equals("出入场信息")) {
			desktop.add(new InOutFrame(),BorderLayout.CENTER);
		}
		//		
		else if(mnuName.equals("用户注册")) {
			desktop.add(new ComZhuCeFrame(),BorderLayout.CENTER);
		}
		else if(mnuName.equals("用户修改")) {
			desktop.add(new ComIdentityFrame(),BorderLayout.CENTER);
		}
		else if(mnuName.equals("用户充值")) {
			desktop.add(new RechargeFrame(),BorderLayout.CENTER);
		}
		else if(mnuName.equals("管理员注册")) {
			desktop.add(new ManZhuCeFrame(),BorderLayout.CENTER);
		}

		else if(mnuName.equals("口令修改")) {
			desktop.add(new GengGaiMiMa(),BorderLayout.CENTER);
		}
		else if(mnuName.equals("当前可用车位信息")) {
			desktop.add(new nowstationFrame(),BorderLayout.CENTER);
		}
		else if(mnuName.equals("关于")) {
			desktop.add(new AboutFrame(),BorderLayout.CENTER);
		}
		else if(mnuName.equals("退出")) {
			System.exit(0);
		}
		else 
			desktop.add(new ManChargeFrame(),BorderLayout.CENTER);
	}		
	
}

四、其他

1.其他系统实现

JavaWeb系统系列实现

Java+JSP实现图书管理系统
Java+JSP实现学生信息管理系统
Java+Servlet+JSP实现学生成绩管理系统
Java+Servlet+JSP实现宠物诊所管理系统
Java+SSM+Easyui实现网上考试系统
Java+Springboot+H-ui实现营销管理系统
Java+Springboot+Mybatis+Bootstrap实现网上商城系统

JavaSwing系统系列实现

Java+Swing实现斗地主游戏
Java+Swing实现图书管理系统
Java+Swing实现医院管理系统
Java+Swing实现仓库管理系统
Java+Swing实现考试管理系统
Java+Swing实现通讯录管理系统
Java+Swing实现学生信息管理系统
Java+Swing实现学生宿舍管理系统
Java+Swing实现学生选课管理系统
Java+Swing实现学生成绩管理系统
Java+Swing实现学校教材管理系统
Java+Swing实现学校教务管理系统
Java+Swing实现企业人事管理系统
Java+Swing实现电子相册管理系统
Java+Swing实现自助取款机(ATM)系统
Java+Swing实现超市管理系统-TXT存储信息
Java+Swing实现宠物商店管理系统-TXT存储信息

2.获取源码

点击以下链接获取源码
源码大全

3.备注

如有侵权请联系我删除。

4.鸡汤

今日事,今日毕!

Logo

本社区面向用户介绍CSDN开发云部门内部产品使用和产品迭代功能,产品功能迭代和产品建议更透明和便捷

更多推荐