Java+Swing+Mysql实现停车场管理系统(下)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Java+Swing+Mysql实现停车场管理系统

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存储信息



相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
11天前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
72 26
|
15天前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
|
25天前
|
关系型数据库 MySQL Java
MySQL索引优化与Java应用实践
【11月更文挑战第25天】在大数据量和高并发的业务场景下,MySQL数据库的索引优化是提升查询性能的关键。本文将深入探讨MySQL索引的多种类型、优化策略及其在Java应用中的实践,通过历史背景、业务场景、底层原理的介绍,并结合Java示例代码,帮助Java架构师更好地理解并应用这些技术。
25 2
|
1月前
|
监控 前端开发 Java
【技术开发】接口管理平台要用什么技术栈?推荐:Java+Vue3+Docker+MySQL
该文档介绍了基于Java后端和Vue3前端构建的管理系统的技术栈及功能模块,涵盖管理后台的访问、登录、首页概览、API接口管理、接口权限设置、接口监控、计费管理、账号管理、应用管理、数据库配置、站点配置及管理员个人设置等内容,并提供了访问地址及操作指南。
|
11天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
80 15
|
5天前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。
|
12天前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。
|
16天前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
24天前
|
关系型数据库 MySQL 数据库
GBase 数据库如何像MYSQL一样存放多行数据
GBase 数据库如何像MYSQL一样存放多行数据
|
1月前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
38 1
下一篇
DataWorks