Eclipse+Java+Swing+Mysql实现电影购票系统(详细代码)

目录
  • 一、系统介绍
    • 1.开发环境
    • 2.技术选型
    • 3.系统功能
      • 3.1.用户
      • 3.2.管理员
    • 4.数据库
    • 5.工程截图
  • 二、系统展示
    • 1.注册系统
    • 2.登录系统
    • 3.用户-欢迎界面
    • 4.用户-影片排行榜
    • 5.用户-购票信息
    • 6.用户-场次信息
    • 8.用户-搜索电影
    • 9.管理员-首页
    • 10.管理员-对用户进行操作
    • 11.管理员-对影院进行操作
    • 12.管理员-对场厅进行操作
    • 13.管理员-对场次进行操作
    • 14.管理员-对电影进行操作
  • 三、部分代码
    • AdminMainView.java
    • MovieInfoView.java
    • operCinemaView.java
    • operHallView.java

一、系统介绍

1.开发环境

开发工具:Eclipse2021

JDK版本:jdk1.8

Mysql版本:8.0.13

2.技术选型

Java+Swing+Mysql

3.系统功能

注册系统,登录系统;

3.1.用户

  • 1.欢迎页:修改用户姓名和密码;
  • 2.碟片排行榜:影片的详细信息;
  • 3.购票信息:已购买车票的信息;
  • 4.场次信息:电影场次的详细信息;
  • 5.充值:充值余额;
  • 6.搜索电影:搜索电影的详细信息;

3.2.管理员

  • 1.对用户进行操作:用户信息的查询、删除;
  • 2.对影院进行操作:影院信息的查询、删除、增加;
  • 3.对场厅进行操作:场厅信息的查询、删除、增加;
  • 4.对场次进行操作:场次信息的查询、删除、增加;
  • 5.对电影进行操作:电影信息的查询、删除、增加;

4.数据库

/*
 Navicat Premium Data Transfer
 Source Server         : MySQL
 Source Server Type    : MySQL
 Source Server Version : 80013
 Source Host           : 127.0.0.1:3306
 Source Schema         : swing_movie_house
 Target Server Type    : MySQL
 Target Server Version : 80013
 File Encoding         : 65001
 Date: 21/09/2021 12:33:55
*/
 
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
 
-- ----------------------------
-- Table structure for cinema
-- ----------------------------
DROP TABLE IF EXISTS `cinema`;
CREATE TABLE `cinema`  (
  `cinema_id` int(11) NOT NULL AUTO_INCREMENT,
  `cname` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `address` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  PRIMARY KEY (`cinema_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;
 
-- ----------------------------
-- Records of cinema
-- ----------------------------
INSERT INTO `cinema` VALUES (6, '光明影院', '湖北武汉');
INSERT INTO `cinema` VALUES (7, '大同影院', '湖南长沙');
 
-- ----------------------------
-- Table structure for comment
-- ----------------------------
DROP TABLE IF EXISTS `comment`;
CREATE TABLE `comment`  (
  `comment_id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `movie_id` int(11) NOT NULL,
  `content` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `datetime` datetime(0) NULL DEFAULT NULL,
  PRIMARY KEY (`comment_id`) USING BTREE,
  INDEX `comment_ibfk_1`(`user_id`) USING BTREE,
  INDEX `comment_ibfk_2`(`movie_id`) USING BTREE,
  CONSTRAINT `comment_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE RESTRICT,
  CONSTRAINT `comment_ibfk_2` FOREIGN KEY (`movie_id`) REFERENCES `movie` (`movie_id`) ON DELETE CASCADE ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;
 
-- ----------------------------
-- Records of comment
-- ----------------------------
 
-- ----------------------------
-- Table structure for hall
-- ----------------------------
DROP TABLE IF EXISTS `hall`;
CREATE TABLE `hall`  (
  `hall_id` int(11) NOT NULL AUTO_INCREMENT,
  `hname` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `capacity` int(11) NULL DEFAULT NULL,
  `cinema_id` int(11) NOT NULL,
  PRIMARY KEY (`hall_id`) USING BTREE,
  INDEX `hall_ibfk_1`(`cinema_id`) USING BTREE,
  CONSTRAINT `hall_ibfk_1` FOREIGN KEY (`cinema_id`) REFERENCES `cinema` (`cinema_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;
 
-- ----------------------------
-- Records of hall
-- ----------------------------
INSERT INTO `hall` VALUES (12, '1厅', 50, 6);
 
-- ----------------------------
-- Table structure for movie
-- ----------------------------
DROP TABLE IF EXISTS `movie`;
CREATE TABLE `movie`  (
  `movie_id` int(11) NOT NULL AUTO_INCREMENT,
  `mname` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `type` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '电影类型',
  `detail` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `duration` int(11) NULL DEFAULT NULL,
  `img` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '保存图片名称',
  PRIMARY KEY (`movie_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 14 CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;
 
-- ----------------------------
-- Records of movie
-- ----------------------------
INSERT INTO `movie` VALUES (12, '八佰', '抗战', '八佰', 120, NULL);
INSERT INTO `movie` VALUES (13, '春秋', '历史', '春秋', 150, NULL);
INSERT INTO `movie` VALUES (15, '1', '1', '1', 1, NULL);
 
-- ----------------------------
-- Table structure for session
-- ----------------------------
DROP TABLE IF EXISTS `session`;
CREATE TABLE `session`  (
  `session_id` int(11) NOT NULL AUTO_INCREMENT,
  `hall_id` int(11) NOT NULL,
  `cinema_id` int(11) NOT NULL,
  `movie_id` int(11) NOT NULL,
  `starttime` varchar(11) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `price` double NULL DEFAULT NULL,
  `remain` int(11) NULL DEFAULT NULL,
  PRIMARY KEY (`session_id`) USING BTREE,
  INDEX `hall_id`(`hall_id`) USING BTREE,
  INDEX `cinema_id`(`cinema_id`) USING BTREE,
  INDEX `movie_id`(`movie_id`) USING BTREE,
  CONSTRAINT `session_ibfk_1` FOREIGN KEY (`hall_id`) REFERENCES `hall` (`hall_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `session_ibfk_2` FOREIGN KEY (`cinema_id`) REFERENCES `cinema` (`cinema_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `session_ibfk_3` FOREIGN KEY (`movie_id`) REFERENCES `movie` (`movie_id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 14 CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;
 
-- ----------------------------
-- Records of session
-- ----------------------------
INSERT INTO `session` VALUES (14, 12, 6, 12, '09:00:00', 50, 47);
 
-- ----------------------------
-- Table structure for ticket
-- ----------------------------
DROP TABLE IF EXISTS `ticket`;
CREATE TABLE `ticket`  (
  `ticket_id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `movie_id` int(11) NOT NULL,
  `session_id` int(11) NOT NULL,
  `seat` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  PRIMARY KEY (`ticket_id`) USING BTREE,
  INDEX `ticket_ibfk_1`(`user_id`) USING BTREE,
  INDEX `ticket_ibfk_2`(`movie_id`) USING BTREE,
  INDEX `ticket_ibfk_3`(`session_id`) USING BTREE,
  CONSTRAINT `ticket_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `ticket_ibfk_2` FOREIGN KEY (`movie_id`) REFERENCES `movie` (`movie_id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `ticket_ibfk_3` FOREIGN KEY (`session_id`) REFERENCES `session` (`session_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB AUTO_INCREMENT = 64 CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;
 
-- ----------------------------
-- Records of ticket
-- ----------------------------
INSERT INTO `ticket` VALUES (64, 1, 12, 14, '3');
 
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (
  `user_id` int(11) NOT NULL AUTO_INCREMENT,
  `uname` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `passwd` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `type` int(11) NULL DEFAULT 0 COMMENT '0代表普通用户,1代表管理员',
  `balance` double NULL DEFAULT NULL,
  `level` int(11) NULL DEFAULT NULL,
  PRIMARY KEY (`user_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;
 
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, 'user', 'user', 0, 161, 1);
INSERT INTO `user` VALUES (2, 'admin', 'admin', 1, 1, 1);
 
SET FOREIGN_KEY_CHECKS = 1;

5.工程截图

二、系统展示

1.注册系统

2.登录系统

3.用户-欢迎界面

4.用户-影片排行榜

5.用户-购票信息

6.用户-场次信息

7.用户-充值余额

8.用户-搜索电影

9.管理员-首页

10.管理员-对用户进行操作

11.管理员-对影院进行操作

12.管理员-对场厅进行操作

13.管理员-对场次进行操作

14.管理员-对电影进行操作

三、部分代码

AdminMainView.java

package view;
 
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
 
import entity.User;
 
public class AdminMainView extends JFrame {
    private JPanel main_panel = null;
    private JPanel fun_panel = null;
    private JDesktopPane fundesk = null;
 
    private JButton oper_User = null;
    private JButton oper_Cinema = null;
    private JButton oper_Hall = null;
    private JButton oper_Session = null;
    private JButton oper_Movie = null;
    private JButton back = null;
 
    private JLabel lb_welcome = null;
    private JLabel lb_image = null;
    private User admin = null;
 
    public AdminMainView() {
        init();
        RegisterListener();
    }
 
    public AdminMainView(User admin) {
        this.admin = admin;
        init();
        RegisterListener();
    }
 
    private void init() {
        main_panel = new JPanel(new BorderLayout());
        fun_panel = new JPanel(new GridLayout(8, 1, 0, 18));
        oper_User = new JButton("对用户进行操作");
        oper_Cinema = new JButton("对影院进行操作");
        oper_Hall = new JButton("对场厅进行操作");
        oper_Session = new JButton("对场次进行操作");
        oper_Movie = new JButton("对电影进行操作");
        back = new JButton("返回");
 
        fun_panel.add(new JLabel());
        fun_panel.add(oper_User);
        fun_panel.add(oper_Cinema);
        fun_panel.add(oper_Hall);
        fun_panel.add(oper_Session);
        fun_panel.add(oper_Movie);
        fun_panel.add(back);
        fun_panel.add(new JLabel());
 
        // 设置面板外观
        fun_panel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createRaisedBevelBorder(), "功能区"));
 
        lb_welcome = new JLabel("欢 迎 " + admin.getUname() + " 进 入 管 理 员 功 能 界 面");
        lb_welcome.setFont(new Font("楷体", Font.BOLD, 34));
        lb_welcome.setForeground(Color.BLUE);
 
        fundesk = new JDesktopPane();
        ImageIcon img = new ImageIcon(ClassLoader.getSystemResource("image/beijjing3.jpg"));
        lb_image = new JLabel(img);
        lb_image.setBounds(10, 10, img.getIconWidth(), img.getIconHeight());
        fundesk.add(lb_image, new Integer(Integer.MIN_VALUE));
 
        main_panel.add(lb_welcome, BorderLayout.NORTH);
        main_panel.add(fun_panel, BorderLayout.EAST);
        main_panel.add(fundesk, BorderLayout.CENTER);
 
        // 为了不让线程阻塞,来调用线程
        // 放入队列当中
        EventQueue.invokeLater(new Runnable() {
 
            public void run() {
                new Thread(new thread()).start();
            }
        });
 
        this.setTitle("管理员功能界面");
        this.getContentPane().add(main_panel);
        this.setSize(880, 600);
        this.setResizable(false);
        this.setVisible(true);
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
 
    // 开启线程使得欢迎标签动起来
    // 这是单线程
    private class thread implements Runnable {
 
        @Override
        public void run() {
            while (true) {// 死循环让其一直移动
                for (int i = 900; i > -700; i--) {
                    // for(int i=-100;i<900;i++){
                    try {
                        Thread.sleep(10);// 让线程休眠100毫秒
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    lb_welcome.setLocation(i, 5);
                }
            }
        }
 
    }
 
    private void RegisterListener() {
        oper_User.addActionListener(new ActionListener() {
 
            @Override
            public void actionPerformed(ActionEvent e) {
                operUserView ouv = new operUserView();
                fundesk.add(ouv);
                ouv.toFront();
            }
        });
 
        oper_Cinema.addActionListener(new ActionListener() {
 
            @Override
            public void actionPerformed(ActionEvent e) {
                operCinemaView ocv = new operCinemaView();
                fundesk.add(ocv);
                ocv.toFront();
            }
        });
 
        oper_Hall.addActionListener(new ActionListener() {
 
            @Override
            public void actionPerformed(ActionEvent e) {
                operHallView ohv = new operHallView();
                fundesk.add(ohv);
                ohv.toFront();
            }
        });
 
        oper_Session.addActionListener(new ActionListener() {
 
            @Override
            public void actionPerformed(ActionEvent e) {
                operSessionView osv = new operSessionView();
                fundesk.add(osv);
                osv.toFront();
            }
        });
 
        oper_Movie.addActionListener(new ActionListener() {
 
            @Override
            public void actionPerformed(ActionEvent e) {
                operMovieView omv = new operMovieView();
                fundesk.add(omv);
                omv.toFront();
            }
        });
        back.addActionListener(new ActionListener() {
 
            @Override
            public void actionPerformed(ActionEvent e) {
                new Login();
                AdminMainView.this.dispose();
            }
        });
    }
}

MovieInfoView.java

package view;
 
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.List;
 
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
 
import entity.Comment;
import entity.Movie;
import entity.User;
import service.CommentService;
import service.MovieService;
import service.UserService;
import serviceimpl.CommentServiceImpl;
import serviceimpl.MovieServiceImpl;
import serviceimpl.UserServiceImpl;
 
public class MovieInfoView extends JFrame {
 
    private JPanel contentPane;
    private JTable table;
    JScrollPane scrollPane = null;
 
    Movie movie = null;
    User user = null;
    MovieService ms = null;
    CommentService cs = null;
    UserService us = null;
 
    public MovieInfoView(Movie movie, User user) {
        this.movie = movie;
        this.user = user;
        ms = new MovieServiceImpl();
        cs = new CommentServiceImpl();
        us = new UserServiceImpl();
        setTitle("用户选票界面");
        setBounds(260, 130, 620, 600);
        this.setLocationRelativeTo(null);
 
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
 
        JLabel lblNewLabel = new JLabel("New label");
        lblNewLabel.setIcon(new ImageIcon("image/" + movie.getImg()));
 
        JLabel label = new JLabel("正在热映···");
 
        JLabel lblNewLabel_1 = new JLabel("影片名:");
        lblNewLabel_1.setFont(new Font("楷体", Font.BOLD, 18));
 
        JLabel label_1 = new JLabel("类型:");
 
        JLabel label_2 = new JLabel("时长:");
 
        JLabel label_3 = new JLabel("电影详情:");
 
        JLabel label_4 = new JLabel(movie.getMname());
        label_4.setFont(new Font("楷体", Font.BOLD, 18));
 
        JButton btnNewButton = new JButton("购买");
        btnNewButton.setForeground(Color.BLUE);
        btnNewButton.addActionListener(new ActionListener() {
 
            @Override
            public void actionPerformed(ActionEvent e) {
                new UserUi(user, 3);
                movie.getMovie_id();
                List<Movie> movieByName = ms.getMovieByName(movie.getMname());
 
                for (Movie movie2 : movieByName) {
                    System.out.println(movie2);
                }
                MovieInfoView.this.dispose();
 
            }
        });
 
        JButton button = new JButton("取消");
        button.setForeground(Color.RED);
        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                MovieInfoView.this.dispose();
            }
        });
 
        scrollPane = new JScrollPane();
        scrollPane.setEnabled(false);
        scrollPane.setVisible(false);
 
        JButton button_1 = new JButton("查看评论");
        button_1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                scrollPane.setVisible(true);
                showComment();
                table.repaint();
 
            }
        });
 
        button_1.setForeground(Color.MAGENTA);
 
        JLabel lblNewLabel_2 = new JLabel("欢迎来到电影详情界面");
        lblNewLabel_2.setFont(new Font("新宋体", Font.BOLD, 20));
        lblNewLabel_2.setForeground(Color.BLACK);
 
        JLabel label_5 = new JLabel(movie.getType());
 
        JLabel label_6 = new JLabel(movie.getDuration() + "分钟");
 
        JLabel label_7 = new JLabel(movie.getDetail());
 
        GroupLayout gl_contentPane = new GroupLayout(contentPane);
        gl_contentPane.setHorizontalGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING).addGroup(gl_contentPane
                .createSequentialGroup()
                .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
                        .addGroup(gl_contentPane.createSequentialGroup().addGap(218)
                                .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
                                        .addGroup(gl_contentPane.createSequentialGroup().addComponent(label_3)
                                                .addPreferredGap(ComponentPlacement.RELATED).addComponent(label_7,
                                                        GroupLayout.PREFERRED_SIZE, 70, GroupLayout.PREFERRED_SIZE))
                                        .addGroup(gl_contentPane.createSequentialGroup().addComponent(lblNewLabel_1)
                                                .addPreferredGap(ComponentPlacement.RELATED)
                                                .addComponent(label_4, GroupLayout.PREFERRED_SIZE, 137,
                                                        GroupLayout.PREFERRED_SIZE))
                                        .addGroup(gl_contentPane.createSequentialGroup()
                                                .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
                                                        .addComponent(label_2)
                                                        .addGroup(gl_contentPane.createSequentialGroup()
                                                                .addPreferredGap(ComponentPlacement.RELATED)
                                                                .addComponent(label_1)))
                                                .addGap(4)
                                                .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
                                                        .addComponent(label_6, GroupLayout.PREFERRED_SIZE, 55,
                                                                GroupLayout.PREFERRED_SIZE)
                                                        .addComponent(label_5, GroupLayout.PREFERRED_SIZE, 82,
                                                                GroupLayout.PREFERRED_SIZE)))
                                        .addGroup(gl_contentPane.createSequentialGroup().addComponent(btnNewButton)
                                                .addGap(18)
                                                .addComponent(button, GroupLayout.PREFERRED_SIZE, 71,
                                                        GroupLayout.PREFERRED_SIZE)
                                                .addGap(18).addComponent(button_1))))
                        .addGroup(gl_contentPane.createSequentialGroup().addGap(36).addComponent(label))
                        .addGroup(gl_contentPane.createSequentialGroup().addGap(170).addComponent(lblNewLabel_2))
                        .addComponent(lblNewLabel, GroupLayout.PREFERRED_SIZE, 200, GroupLayout.PREFERRED_SIZE)
                        .addGroup(gl_contentPane.createSequentialGroup().addGap(84).addComponent(scrollPane,
                                GroupLayout.PREFERRED_SIZE, 464, GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(46, Short.MAX_VALUE)));
        gl_contentPane.setVerticalGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING)
                .addGroup(gl_contentPane.createSequentialGroup()
                        .addGroup(gl_contentPane
                                .createParallelGroup(Alignment.LEADING)
                                .addGroup(gl_contentPane.createSequentialGroup().addGap(46).addComponent(label)
                                        .addPreferredGap(ComponentPlacement.UNRELATED)
                                        .addComponent(lblNewLabel, GroupLayout.DEFAULT_SIZE, 277, Short.MAX_VALUE))
                                .addGroup(gl_contentPane.createSequentialGroup().addContainerGap()
                                        .addComponent(lblNewLabel_2).addGap(58)
                                        .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
                                                .addComponent(lblNewLabel_1).addComponent(label_4,
                                                        GroupLayout.PREFERRED_SIZE, 21, GroupLayout.PREFERRED_SIZE))
                                        .addPreferredGap(ComponentPlacement.RELATED, 53, Short.MAX_VALUE)
                                        .addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
                                                .addComponent(label_1).addComponent(label_5))
                                        .addGap(18)
                                        .addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
                                                .addComponent(label_2).addComponent(label_6))
                                        .addGap(18)
                                        .addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
                                                .addComponent(label_3).addComponent(label_7))
                                        .addGap(125)
                                        .addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
                                                .addComponent(btnNewButton).addComponent(button)
                                                .addComponent(button_1))))
                        .addGap(28)
                        .addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 139, GroupLayout.PREFERRED_SIZE)));
 
        showComment();
        scrollPane.setViewportView(table);
        contentPane.setLayout(gl_contentPane);
        this.setVisible(true);
    }
 
    public void showComment() {
        List<Comment> commlist = cs.getAllCommentByMovieId(movie.getMovie_id());
        int recordrow = 0;
 
        if (commlist != null) {
            recordrow = commlist.size();
        }
        String[][] rinfo = new String[recordrow][3];
 
        SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd hh:mm");
        for (int i = 0; i < recordrow; i++) {
            for (int j = 0; j < 3; j++) {
                rinfo[i][j] = new String();
 
                rinfo[i][0] = us.queryUserById(commlist.get(i).getUser_id()).getUname();
                rinfo[i][1] = commlist.get(i).getContent();
                rinfo[i][2] = sdf.format(commlist.get(i).getDatetime());
            }
        }
 
        String[] tbheadnames = { "用户名", "评论内容", "评论时间" };
 
        table = new JTable(rinfo, tbheadnames);
        table.setBorder(null);
        table.setRowHeight(20);
        table.setEnabled(false);
        table.getColumnModel().getColumn(0).setPreferredWidth(30);
        table.getTableHeader().setFont(new Font("楷体", 1, 20));
        table.getTableHeader().setBackground(Color.CYAN);
        table.getTableHeader().setReorderingAllowed(false); // 不可交换顺序
        table.getTableHeader().setResizingAllowed(true); // 不可拉动表格
 
        scrollPane.add(table);
        scrollPane.setBorder(null);
 
        table.repaint();
 
    }
}

operCinemaView.java

package view;
 
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.List;
 
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.event.TableModelListener;
import javax.swing.table.TableModel;
 
import entity.Cinema;
import service.CinemaService;
import serviceimpl.CinemaServiceImpl;
 
public class operCinemaView extends JInternalFrame {
    private JPanel pl_main = null;
    private JPanel pl_button = null;
    private JPanel pl_text = null;
    private JTable table = null;
    private JButton btn_add = null;
    private JButton btn_query = null;
    private JButton btn_del = null;
    private JComboBox<String> cb_query = null;
    private JButton btn_back = null;
    private JLabel lb_name = null;
    private JLabel lb_address = null;
    private JTextField tf_qname = null;// 查询时输入的名称
    private JTextField tf_name = null;// 添加输入的名称
    private JTextField tf_address = null;
    private CinemaService cinemabiz = null;
    private List<Cinema> cinemaList = null;
    private CinemaInfoTableModel infoTableModel = null;
//    private List<Hall> hallList = null;
//    private List<Session> sessionList = null;
//    private HallBiz hallbiz = null;
//    private SessionBiz sessionbiz = null;
 
    public operCinemaView() {
        cinemabiz = new CinemaServiceImpl();
//        hallbiz = new HallBizImpl();
//        sessionbiz = new SessionBizImpl();
        init();
        RegisterListener();
    }
 
    private void init() {
        pl_main = new JPanel(new BorderLayout());
        pl_button = new JPanel(new GridLayout(8, 1, 0, 40));
        pl_text = new JPanel(new GridLayout(1, 4));
        cinemaList = new ArrayList<Cinema>();
        table = new JTable();
        refreshTable(cinemaList);
        cb_query = new JComboBox<String>(new String[] { "查询所有影院", "按名字查找影院" });
        tf_qname = new JTextField(8);
        tf_qname.setEnabled(false);
        btn_query = new JButton("查询");
        btn_add = new JButton("增添影院");
        btn_del = new JButton("删除影院");
        btn_del.setEnabled(false);
        btn_back = new JButton("退出窗口");
        lb_name = new JLabel("影院名称: ");
        tf_name = new JTextField(8);
        lb_address = new JLabel("影院地址: ");
        tf_address = new JTextField(12);
        pl_main.add(table.getTableHeader(), BorderLayout.PAGE_START);
        pl_main.add(table);
        pl_main.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(null, null), "查询信息"));
        pl_button.add(new JLabel());
        pl_button.add(cb_query);
        pl_button.add(tf_qname);
        pl_button.add(btn_query);
        pl_button.add(btn_add);
        pl_button.add(btn_del);
        pl_button.add(new JLabel());
        pl_button.add(btn_back);
 
        pl_text.add(lb_name);
        pl_text.add(tf_name);
        pl_text.add(lb_address);
        pl_text.add(tf_address);
        this.add(pl_main, BorderLayout.CENTER);
        this.add(pl_button, BorderLayout.EAST);
        this.add(pl_text, BorderLayout.NORTH);
        this.setVisible(true);
        this.setTitle("影院操作界面");
        this.setSize(700, 530);
        this.setIconifiable(true);
        this.setClosable(true);
        this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    }
 
    private void RegisterListener() {
 
        table.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                if (table.getSelectedRow() != -1) {
                    btn_del.setEnabled(true);
                }
                int row = table.getSelectedRow();
                String name = table.getValueAt(row, 1).toString();
                String address = table.getValueAt(row, 2).toString();
                tf_name.setText(name);
                tf_address.setText(address);
            }
        });
        cb_query.addActionListener(new ActionListener() {
 
            @Override
            public void actionPerformed(ActionEvent e) {
                if (cb_query.getSelectedIndex() + 1 == 2) {
                    tf_qname.setEnabled(true);
                } else {
                    tf_qname.setEnabled(false);
                }
            }
        });
        btn_query.addActionListener(new ActionListener() {
 
            @Override
            public void actionPerformed(ActionEvent e) {
                if (cb_query.getSelectedIndex() + 1 == 1) {
                    cinemaList = cinemabiz.queryAllCinema();
                    refreshTable(cinemaList);
                } else {
                    String name = tf_qname.getText().trim();
                    cinemaList = cinemabiz.queryCinemaByName(name);
                    refreshTable(cinemaList);
                }
            }
        });
 
        btn_add.addActionListener(new ActionListener() {
 
            @Override
            public void actionPerformed(ActionEvent e) {
                String name = tf_name.getText().trim();
                String address = tf_address.getText().trim();
                if (name.equals("")) {
                    JOptionPane.showMessageDialog(operCinemaView.this, "影院名称不能为空!");
                } else if (address.equals("")) {
                    JOptionPane.showMessageDialog(operCinemaView.this, "影院地址不能为空!");
                } else {
                    int flag = JOptionPane.showConfirmDialog(operCinemaView.this, "确认是否添加?", "确认信息",
                            JOptionPane.YES_NO_OPTION);
                    if (flag == JOptionPane.YES_OPTION) {
                        Cinema cinema = new Cinema(name, address);
                        boolean res = cinemabiz.addCinema(cinema);
                        if (res) {
                            cinemaList = cinemabiz.queryAllCinema();
                            refreshTable(cinemaList);
                            JOptionPane.showMessageDialog(operCinemaView.this, "添加成功!");
                        } else {
                            JOptionPane.showMessageDialog(operCinemaView.this, "添加失败!");
                        }
                    }
                }
            }
        });
 
        btn_del.addActionListener(new ActionListener() {
 
            @Override
            public void actionPerformed(ActionEvent e) {
                int row = table.getSelectedRow();
                int id = (Integer) table.getValueAt(row, 0);
                int flag = JOptionPane.showConfirmDialog(operCinemaView.this, "确认是否删除此影院?", "确认信息",
                        JOptionPane.YES_NO_OPTION);
                if (flag == JOptionPane.YES_OPTION) {
                    boolean res = cinemabiz.deleteCinemaById(id);
                    /*
                     * if(res) { //更新数据 hallList = hallbiz.queryAllHall(); int hid = 0; for(int i =
                     * 0; i < hallList.size(); i++) { if(id == hallList.get(i).getCid()) { hid =
                     * hallList.get(i).getId(); hallbiz.delHall(hid); } } sessionList =
                     * sessionbiz.queryAllSession(); for(int i = 0; i < sessionList.size(); i++) {
                     * if(hid == sessionList.get(i).getHid()) {
                     * sessionbiz.delSession(sessionList.get(i).getId()); } } }
                     */
                    cinemaList = cinemabiz.queryAllCinema();
                    refreshTable(cinemaList);
                }
            }
        });
        btn_back.addActionListener(new ActionListener() {
 
            @Override
            public void actionPerformed(ActionEvent e) {
                operCinemaView.this.dispose();
            }
        });
    }
 
    public class CinemaInfoTableModel implements TableModel {
        public List<Cinema> cinemaList = null;
 
        public CinemaInfoTableModel(List<Cinema> cinemaList) {
            this.cinemaList = cinemaList;
        }
 
        @Override
        public int getRowCount() {
            return cinemaList.size();
        }
 
        @Override
        public int getColumnCount() {
            return 3;
        }
 
        @Override
        public String getColumnName(int columnIndex) {
            if (columnIndex == 0) {
                return "影院ID";
            } else if (columnIndex == 1) {
                return "影院名称";
            } else if (columnIndex == 2) {
                return "影院地址";
            } else {
                return "出错";
            }
        }
 
        @Override
        public Class<?> getColumnClass(int columnIndex) {
            return String.class;
        }
 
        @Override
        public boolean isCellEditable(int rowIndex, int columnIndex) {
            return false;
        }
 
        @Override
        public Object getValueAt(int rowIndex, int columnIndex) {
            Cinema cinema = cinemaList.get(rowIndex);
            if (columnIndex == 0) {
                return cinema.getCinema_id();
            } else if (columnIndex == 1) {
                return cinema.getCname();
            } else if (columnIndex == 2) {
                return cinema.getAddress();
            } else {
                return "出错";
            }
        }
 
        @Override
        public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
            // TODO Auto-generated method stub
 
        }
 
        @Override
        public void addTableModelListener(TableModelListener l) {
            // TODO Auto-generated method stub
 
        }
 
        @Override
        public void removeTableModelListener(TableModelListener l) {
            // TODO Auto-generated method stub
 
        }
    }
 
    private void refreshTable(List<Cinema> cinemaList) {
        infoTableModel = new CinemaInfoTableModel(cinemaList);
        table.setModel(infoTableModel);
        table.setRowHeight(20);
    }
}

operHallView.java

package view;
 
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.List;
 
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.event.TableModelListener;
import javax.swing.table.TableModel;
 
import entity.Cinema;
import entity.Hall;
import entity.Session;
import service.CinemaService;
import service.HallService;
import serviceimpl.CinemaServiceImpl;
import serviceimpl.HallServiceImpl;
import serviceimpl.SessionServiceImpl;
import util.Check;
 
public class operHallView extends JInternalFrame {
    private JPanel pl_main = null;
    private JPanel pl_button = null;
    private JPanel pl_text = null;
    private JTable table = null;
    private JButton btn_add = null;
    private JButton btn_del = null;
    private JButton btn_query = null;
    private JButton btn_back = null;
    private JLabel lb_name = null;
    private JLabel lb_cid = null;
    private JLabel lb_capacity = null;
    private JTextField tf_name = null;// 添加输入的名称
    private JTextField tf_cid = null;// 添加时输入的所属影院id
    private JTextField tf_capacity = null;// 添加输入的名称
    private HallService hallbiz = null;
    private CinemaService cinemabiz = null;
    private SessionServiceImpl sessionbiz = null;
    private List<Hall> hallList = null;
    private HallInfoTableModel infoTableModel = null;
 
    public operHallView() {
        hallbiz = new HallServiceImpl();
        cinemabiz = new CinemaServiceImpl();// 查询出所有的影院与cid进行匹配,显示影院名称
        sessionbiz = new SessionServiceImpl();
        init();
        RegisterListener();
    }
 
    private void init() {
        pl_main = new JPanel(new BorderLayout());
        pl_button = new JPanel(new GridLayout(6, 1, 0, 40));
        pl_text = new JPanel(new GridLayout(1, 6));
        hallList = new ArrayList<Hall>();
        table = new JTable();
        // 绑定JTabel,呈现数据
        refreshTable(hallList);
        btn_query = new JButton("查询所有场厅");
        btn_add = new JButton("增添场厅");
        btn_del = new JButton("删除场厅");
        btn_del.setEnabled(false);
        btn_back = new JButton("退出窗口");
        tf_name = new JTextField(8);
        tf_cid = new JTextField(8);
        tf_capacity = new JTextField(8);
        lb_name = new JLabel("场厅名称");
        lb_cid = new JLabel("所属影院id");
        lb_capacity = new JLabel("场厅容量");
        pl_main.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(null, null), "查询信息"));
        pl_main.add(table.getTableHeader(), BorderLayout.PAGE_START);
        pl_main.add(table);
        this.add(pl_main, BorderLayout.CENTER);
 
        pl_button.add(new JLabel());
        pl_button.add(btn_query);
        pl_button.add(btn_add);
        pl_button.add(btn_del);
        pl_button.add(new JLabel());
        pl_button.add(btn_back);
        this.add(pl_button, BorderLayout.EAST);
 
        pl_text.add(lb_name);
        pl_text.add(tf_name);
        pl_text.add(lb_cid);
        pl_text.add(tf_cid);
        pl_text.add(lb_capacity);
        pl_text.add(tf_capacity);
        this.add(pl_text, BorderLayout.NORTH);
        this.setVisible(true);
        this.setTitle("场厅操作界面");
        this.setSize(700, 530);
        this.setIconifiable(true);
        this.setClosable(true);
        this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    }
 
    private void RegisterListener() {
        table.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                // 加入选中一行,删除按钮变为可用
                if (table.getSelectedRow() != -1) {
                    btn_del.setEnabled(true);
                }
                int row = table.getSelectedRow();
                String name = table.getValueAt(row, 1).toString();
                String cid = table.getValueAt(row, 2).toString();
                String capacity = table.getValueAt(row, 3).toString();
                tf_name.setText(name);
                tf_cid.setText(cid);
                tf_capacity.setText(capacity);
            }
        });
 
        btn_add.addActionListener(new ActionListener() {
 
            @Override
            public void actionPerformed(ActionEvent e) {
                String name = tf_name.getText().trim();
                String cid = tf_cid.getText().trim();
                String capacity = tf_capacity.getText().trim();
                if (name.equals("")) {
                    JOptionPane.showMessageDialog(operHallView.this, "场厅名称不能为空!");
                } else if (cid.equals("")) {
                    JOptionPane.showMessageDialog(operHallView.this, "所属影院id不能为空!");
                } else if (capacity.equals("")) {
                    JOptionPane.showMessageDialog(operHallView.this, "场厅容量不能为空!");
                } else if (!Check.isNumber(cid)) {
                    JOptionPane.showMessageDialog(operHallView.this, "所属影院id只能为数字!");
                } else if (!Check.isNumber(capacity)) {
                    JOptionPane.showMessageDialog(operHallView.this, "场厅容量只能为数字!");
                } else {
                    int flag = JOptionPane.showConfirmDialog(operHallView.this, "是否添加此场厅?", "确认信息",
                            JOptionPane.YES_NO_OPTION);
                    if (flag == JOptionPane.YES_OPTION) {
                        Hall hall = new Hall(name, new Integer(capacity), new Integer(cid));
                        boolean res = hallbiz.addHall(hall);
 
                        hallList = hallbiz.queryAllHall();
                        refreshTable(hallList);
                        if (res) {
                            JOptionPane.showMessageDialog(operHallView.this, "添加成功!");
                        } else {
                            JOptionPane.showMessageDialog(operHallView.this, "添加失败!");
                        }
                    }
                }
            }
        });
        btn_query.addActionListener(new ActionListener() {
 
            @Override
            public void actionPerformed(ActionEvent e) {
                // 清除数据,防止累加
                if (hallList != null) {
                    hallList.clear();
                }
                hallList = hallbiz.queryAllHall();
                refreshTable(hallList);
            }
        });
        btn_del.addActionListener(new ActionListener() {
 
            @Override
            public void actionPerformed(ActionEvent e) {
                int row = table.getSelectedRow();
                int id = (Integer) table.getValueAt(row, 0);
                int flag = JOptionPane.showConfirmDialog(operHallView.this, "确认是否删除此场厅?", "确认信息",
                        JOptionPane.YES_NO_OPTION);
                if (flag == JOptionPane.YES_OPTION) {
                    boolean res = hallbiz.delHall(id);
                    if (res) {
                        JOptionPane.showMessageDialog(operHallView.this, "删除成功!");
                        // 更新数据
                        List<Session> sessionList = new ArrayList<Session>();
                        sessionList = sessionbiz.queryAllSession();
                        // 删除某场厅后,对应的场次也进行删除
                        int sid = 0;
                        for (int i = 0; i < sessionList.size(); i++) {
                            if (id == sessionList.get(i).getHall_id()) {
                                sid = sessionList.get(i).getSession_id();
                                sessionbiz.delSession(sid);
                            }
                        }
                        hallList = hallbiz.queryAllHall();
                        refreshTable(hallList);// 更新显示数据
                    } else {
                        JOptionPane.showMessageDialog(operHallView.this, "删除失败!");
                    }
                }
            }
        });
        btn_back.addActionListener(new ActionListener() {
 
            @Override
            public void actionPerformed(ActionEvent e) {
                operHallView.this.dispose();
            }
        });
    }
 
    private class HallInfoTableModel implements TableModel {
        public List<Hall> hallList = null;
 
        public HallInfoTableModel(List<Hall> hallList) {
            this.hallList = hallList;
        }
 
        // JTable显示的行数
        @Override
        public int getRowCount() {
            return hallList.size();
        }
 
        // JTable显示的列数
        @Override
        public int getColumnCount() {
            return 4;
        }
 
        // JTable显示各行的名称
        @Override
        public String getColumnName(int columnIndex) {
            if (columnIndex == 0) {
                return "场厅ID";
            } else if (columnIndex == 1) {
                return "场厅名称";
            } else if (columnIndex == 2) {
                return "所属影院";
            } else if (columnIndex == 3) {
                return "场厅容量";
            } else {
                return "出错";
            }
        }
 
        // JTable列的数据类型
        @Override
        public Class<?> getColumnClass(int columnIndex) {
            return String.class;
        }
 
        // 单元格是否可编辑
        @Override
        public boolean isCellEditable(int rowIndex, int columnIndex) {
            return false;
        }
 
        // 每行单元格显示的数据
        @Override
        public Object getValueAt(int rowIndex, int columnIndex) {
            Hall hall = hallList.get(rowIndex);
            Cinema cinema = null;
            if (columnIndex == 0) {
                return hall.getHall_id();
            } else if (columnIndex == 1) {
                return hall.getHname();
            } else if (columnIndex == 2) {
                List<Cinema> cinemaList = cinemabiz.queryAllCinema();
                for (int i = 0; i < cinemaList.size(); i++) {
                    if (hall.getCinema_id() == cinemaList.get(i).getCinema_id()) {
                        cinema = cinemaList.get(i);
                        break;
                    }
                }
                return cinema.getCname();
                // return hall.getCid();
            } else if (columnIndex == 3) {
                return hall.getCapacity();
            } else {
                return "出错";
            }
        }
 
        @Override
        public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
            // TODO Auto-generated method stub
 
        }
 
        @Override
        public void addTableModelListener(TableModelListener l) {
            // TODO Auto-generated method stub
 
        }
 
        @Override
        public void removeTableModelListener(TableModelListener l) {
            // TODO Auto-generated method stub
 
        }
    }
 
    private void refreshTable(List<Hall> hallList) {
        infoTableModel = new HallInfoTableModel(hallList);
        table.setModel(infoTableModel);
        table.setRowHeight(20);
    }
}

到此这篇关于Eclipse+Java+Swing+Mysql实现电影购票系统(详细代码)的文章就介绍到这了,更多相关Eclipse+Java+Swing+Mysql实现电影购票系统内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • java swing实现电影购票系统

    本文实例为大家分享了java swing实现电影购票系统的具体代码,供大家参考,具体内容如下 首先系统分为前台用户登录注册和后台管理员进行管理 项目采用三层架构思想 系统首页 电影详情以及查看评论 查看所有电影场次 购买影票选择座位 查看影票以及点击进入评论 对购买的影票进行想评论 接下来看看管理员 管理员进行操作,几个按钮样式差不错,就不全贴了.感觉已经贴的挺详细的了. 代码的话就贴一些通用的访问数据库的具有通用的增删改查的代码. /** * 执行增删改的操作 * @param sql * @

  • Eclipse+Java+Swing+Mysql实现电影购票系统(详细代码)

    目录 一.系统介绍 1.开发环境 2.技术选型 3.系统功能 3.1.用户 3.2.管理员 4.数据库 5.工程截图 二.系统展示 1.注册系统 2.登录系统 3.用户-欢迎界面 4.用户-影片排行榜 5.用户-购票信息 6.用户-场次信息 8.用户-搜索电影 9.管理员-首页 10.管理员-对用户进行操作 11.管理员-对影院进行操作 12.管理员-对场厅进行操作 13.管理员-对场次进行操作 14.管理员-对电影进行操作 三.部分代码 AdminMainView.java MovieInfo

  • Eclipse+Java+Swing+Mysql实现电影购票系统(详细代码)

    目录 一.系统介绍 1.开发环境 2.技术选型 3.系统功能 3.1.用户 3.2.管理员 4.数据库 5.工程截图 二.系统展示 1.注册系统 2.登录系统 3.用户-欢迎界面 4.用户-影片排行榜 5.用户-购票信息 6.用户-场次信息 8.用户-搜索电影 9.管理员-首页 10.管理员-对用户进行操作 11.管理员-对影院进行操作 12.管理员-对场厅进行操作 13.管理员-对场次进行操作 14.管理员-对电影进行操作 三.部分代码 AdminMainView.java MovieInfo

  • Eclipse+Java+Swing+Mysql实现工资管理系统

    目录 一.系统介绍 1.开发环境 2.技术选型 3.系统功能 4.数据库 二.系统展示 1.登录系统 2.用户-登录系统 3.用户-查看工资 4.管理员-主界面 6.管理员-修改员工信息 7.管理员-删除员工信息 8.管理员-添加部门信息 9.管理员-修改部门信息 10.管理员-删除部门信息 11.管理员-工资设定 12.管理员-工资查询 13.管理员-工资一览 三.部分代码 Login.java MainFrame.java DBConn.java AddDepartment.java Add

  • Eclipse+Java+Swing实现学生成绩管理系统的实例代码

    一.系统介绍 本系统实现了用户登录,实现了对学生成绩的增删改查,实现了用户修改密码功能,采用MD5加密算法,数据库使用Mysql8.0.13,界面良好. 二.系统展示 1.登录页 2.主页面 3.查询学生成绩 4.修改学生成绩 5.添加学生成绩 6.修改系统密码 三.系统实现 Student.java package com.sjsq.model; import java.util.ArrayList; import java.util.List; /** * 学生实体类 * @author s

  • java使用三层架构实现电影购票系统

    使用三层架构实现电影购票系统,分用户和管理员,用户功能:展示电影,查找电影(模糊查询),查看电影详情,查找场次,购买影票,订制座位,退订影票等功能,界面美观漂亮,逻辑严谨,附加电影评论功能,订票超过五张打0.9折的打折功能.管理员功能:影院的增删改查,场次的增删改查,电影的增删改查,影票管理等. 管理员账号:admin  密码:admin 下载地址:java实现电影购票系统 效果展示图: 登录界面: 用户主界面: 查看热门电影: 点击电影进入查看详情,可以看到该电影的所有评论,可以进行评论. 点

  • Java Swing实现餐厅点餐系统源码(收藏版)

    本文适合Java初级选手,主要技术是Java和MySQL.主要功能如下: (1)注册功能 (2)管理员可以新增套餐 (3)管理员可以管理套餐 (4)管理员可以处理订单 (5)管理员可以修改密码 (6)顾客可以点餐 (7)顾客可以查看订单信息 (8)顾客可以修改个人信息 下面是项目目录 源码有点多,不太好贴,如果需要源码,可以关注公众号[Java技术迷]回复[2021]编号03即是该系统的源码. 即可获取整套源码,也可以直接扫码关注 下面是系统运行图 如果需要源码,可以关注公众号回复[2021]即

  • Java+swing+Mysql实现商品销售管理系统

    目录 前言 数据库的建立 Java系统 entity包 data包 Login包 windows包 主系统类 前言 临近期末做了一个商品销售管理系统,分享下,全部源码在码云,需要自取,博客只分享部分代码(太多了). 数据库的建立 我们使用Navicat Premium 15连接mysql,建立如下九张表. 得到如下视图(看上去似乎有点乱了) 因为register是一个注册表,所以不参与视图里的连接. 各种表的情况如上所示,当然你也可以用sql语句写. 这个是我导出来的sql语句,由于我也没试过,

  • Eclipse+Java+Swing实现斗地主游戏(代码)

    目录 一.系统介绍 二.系统展示 1.扑克分发 2.抢地主 3.出牌 4.游戏胜利 三.系统实现 Card.java CardType.java Common.java Model.java NewSwing.java 一.系统介绍 本系统实现扑克的分发,抢地主,电脑自动出牌等功能. 二.系统展示 1.扑克分发 2.抢地主 3.出牌 4.游戏胜利 三.系统实现 Card.java package com.sjsq; import java.awt.Point; import java.awt.e

  • java Swing基础教程之图形化实例代码

    java  Swing基础教程之图形化实例代码 与多线程.泛型等不同,Swing主要在于使用. 下面主要放代码和注释,少说话. (一)基本框架 package Swing; import java.awt.*; import javax.swing.*; /** * * @author QuinnNorris * 基本框架 */ public class FrameTest { /** * @param args */ public static void main(String[] args)

随机推荐