阅读 152

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

这篇文章主要介绍了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.数据库

                                        1
                                        2
                                        3
                                        4
                                        5
                                        6
                                        7
                                        8
                                        9
                                        10
                                        11
                                        12
                                        13
                                        14
                                        15
                                        16
                                        17
                                        18
                                        19
                                        20
                                        21
                                        22
                                        23
                                        24
                                        25
                                        26
                                        27
                                        28
                                        29
                                        30
                                        31
                                        32
                                        33
                                        34
                                        35
                                        36
                                        37
                                        38
                                        39
                                        40
                                        41
                                        42
                                        43
                                        44
                                        45
                                        46
                                        47
                                        48
                                        49
                                        50
                                        51
                                        52
                                        53
                                        54
                                        55
                                        56
                                        57
                                        58
                                        59
                                        60
                                        61
                                        62
                                        63
                                        64
                                        65
                                        66
                                        67
                                        68
                                        69
                                        70
                                        71
                                        72
                                        73
                                        74
                                        75
                                        76
                                        77
                                        78
                                        79
                                        80
                                        81
                                        82
                                        83
                                        84
                                        85
                                        86
                                        87
                                        88
                                        89
                                        90
                                        91
                                        92
                                        93
                                        94
                                        95
                                        96
                                        97
                                        98
                                        99
                                        100
                                        101
                                        102
                                        103
                                        104
                                        105
                                        106
                                        107
                                        108
                                        109
                                        110
                                        111
                                        112
                                        113
                                        114
                                        115
                                        116
                                        117
                                        118
                                        119
                                        120
                                        121
                                        122
                                        123
                                        124
                                        125
                                        126
                                        127
                                        128
                                        129
                                        130
                                        131
                                        132
                                        133
                                        134
                                        135
                                        136
                                        137
                                        138
                                        139
                                        140
                                        141
                                        142
                                        143
                                        144
                                        145
                                        146
                                        147
                                        148
                                        149
                                        150
                                        151
                                        152
                                        153
                                        154
                                        155
                                        156
                                        157
                                        158
                                        159
                                        160
                                        161
                                        162
                                        163
                                        164
                                        165
                                        /*
                                         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

                                        1
                                        2
                                        3
                                        4
                                        5
                                        6
                                        7
                                        8
                                        9
                                        10
                                        11
                                        12
                                        13
                                        14
                                        15
                                        16
                                        17
                                        18
                                        19
                                        20
                                        21
                                        22
                                        23
                                        24
                                        25
                                        26
                                        27
                                        28
                                        29
                                        30
                                        31
                                        32
                                        33
                                        34
                                        35
                                        36
                                        37
                                        38
                                        39
                                        40
                                        41
                                        42
                                        43
                                        44
                                        45
                                        46
                                        47
                                        48
                                        49
                                        50
                                        51
                                        52
                                        53
                                        54
                                        55
                                        56
                                        57
                                        58
                                        59
                                        60
                                        61
                                        62
                                        63
                                        64
                                        65
                                        66
                                        67
                                        68
                                        69
                                        70
                                        71
                                        72
                                        73
                                        74
                                        75
                                        76
                                        77
                                        78
                                        79
                                        80
                                        81
                                        82
                                        83
                                        84
                                        85
                                        86
                                        87
                                        88
                                        89
                                        90
                                        91
                                        92
                                        93
                                        94
                                        95
                                        96
                                        97
                                        98
                                        99
                                        100
                                        101
                                        102
                                        103
                                        104
                                        105
                                        106
                                        107
                                        108
                                        109
                                        110
                                        111
                                        112
                                        113
                                        114
                                        115
                                        116
                                        117
                                        118
                                        119
                                        120
                                        121
                                        122
                                        123
                                        124
                                        125
                                        126
                                        127
                                        128
                                        129
                                        130
                                        131
                                        132
                                        133
                                        134
                                        135
                                        136
                                        137
                                        138
                                        139
                                        140
                                        141
                                        142
                                        143
                                        144
                                        145
                                        146
                                        147
                                        148
                                        149
                                        150
                                        151
                                        152
                                        153
                                        154
                                        155
                                        156
                                        157
                                        158
                                        159
                                        160
                                        161
                                        162
                                        163
                                        164
                                        165
                                        166
                                        167
                                        168
                                        169
                                        170
                                        171
                                        172
                                        173
                                        174
                                        175
                                        176
                                        177
                                        178
                                        179
                                        180
                                        181
                                        182
                                        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

                                        1
                                        2
                                        3
                                        4
                                        5
                                        6
                                        7
                                        8
                                        9
                                        10
                                        11
                                        12
                                        13
                                        14
                                        15
                                        16
                                        17
                                        18
                                        19
                                        20
                                        21
                                        22
                                        23
                                        24
                                        25
                                        26
                                        27
                                        28
                                        29
                                        30
                                        31
                                        32
                                        33
                                        34
                                        35
                                        36
                                        37
                                        38
                                        39
                                        40
                                        41
                                        42
                                        43
                                        44
                                        45
                                        46
                                        47
                                        48
                                        49
                                        50
                                        51
                                        52
                                        53
                                        54
                                        55
                                        56
                                        57
                                        58
                                        59
                                        60
                                        61
                                        62
                                        63
                                        64
                                        65
                                        66
                                        67
                                        68
                                        69
                                        70
                                        71
                                        72
                                        73
                                        74
                                        75
                                        76
                                        77
                                        78
                                        79
                                        80
                                        81
                                        82
                                        83
                                        84
                                        85
                                        86
                                        87
                                        88
                                        89
                                        90
                                        91
                                        92
                                        93
                                        94
                                        95
                                        96
                                        97
                                        98
                                        99
                                        100
                                        101
                                        102
                                        103
                                        104
                                        105
                                        106
                                        107
                                        108
                                        109
                                        110
                                        111
                                        112
                                        113
                                        114
                                        115
                                        116
                                        117
                                        118
                                        119
                                        120
                                        121
                                        122
                                        123
                                        124
                                        125
                                        126
                                        127
                                        128
                                        129
                                        130
                                        131
                                        132
                                        133
                                        134
                                        135
                                        136
                                        137
                                        138
                                        139
                                        140
                                        141
                                        142
                                        143
                                        144
                                        145
                                        146
                                        147
                                        148
                                        149
                                        150
                                        151
                                        152
                                        153
                                        154
                                        155
                                        156
                                        157
                                        158
                                        159
                                        160
                                        161
                                        162
                                        163
                                        164
                                        165
                                        166
                                        167
                                        168
                                        169
                                        170
                                        171
                                        172
                                        173
                                        174
                                        175
                                        176
                                        177
                                        178
                                        179
                                        180
                                        181
                                        182
                                        183
                                        184
                                        185
                                        186
                                        187
                                        188
                                        189
                                        190
                                        191
                                        192
                                        193
                                        194
                                        195
                                        196
                                        197
                                        198
                                        199
                                        200
                                        201
                                        202
                                        203
                                        204
                                        205
                                        206
                                        207
                                        208
                                        209
                                        210
                                        211
                                        212
                                        213
                                        214
                                        215
                                        216
                                        217
                                        218
                                        219
                                        220
                                        221
                                        222
                                        223
                                        224
                                        225
                                        226
                                        227
                                        228
                                        229
                                        230
                                        231
                                        232
                                        233
                                        234
                                        235
                                        236
                                        237
                                        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

                                        1
                                        2
                                        3
                                        4
                                        5
                                        6
                                        7
                                        8
                                        9
                                        10
                                        11
                                        12
                                        13
                                        14
                                        15
                                        16
                                        17
                                        18
                                        19
                                        20
                                        21
                                        22
                                        23
                                        24
                                        25
                                        26
                                        27
                                        28
                                        29
                                        30
                                        31
                                        32
                                        33
                                        34
                                        35
                                        36
                                        37
                                        38
                                        39
                                        40
                                        41
                                        42
                                        43
                                        44
                                        45
                                        46
                                        47
                                        48
                                        49
                                        50
                                        51
                                        52
                                        53
                                        54
                                        55
                                        56
                                        57
                                        58
                                        59
                                        60
                                        61
                                        62
                                        63
                                        64
                                        65
                                        66
                                        67
                                        68
                                        69
                                        70
                                        71
                                        72
                                        73
                                        74
                                        75
                                        76
                                        77
                                        78
                                        79
                                        80
                                        81
                                        82
                                        83
                                        84
                                        85
                                        86
                                        87
                                        88
                                        89
                                        90
                                        91
                                        92
                                        93
                                        94
                                        95
                                        96
                                        97
                                        98
                                        99
                                        100
                                        101
                                        102
                                        103
                                        104
                                        105
                                        106
                                        107
                                        108
                                        109
                                        110
                                        111
                                        112
                                        113
                                        114
                                        115
                                        116
                                        117
                                        118
                                        119
                                        120
                                        121
                                        122
                                        123
                                        124
                                        125
                                        126
                                        127
                                        128
                                        129
                                        130
                                        131
                                        132
                                        133
                                        134
                                        135
                                        136
                                        137
                                        138
                                        139
                                        140
                                        141
                                        142
                                        143
                                        144
                                        145
                                        146
                                        147
                                        148
                                        149
                                        150
                                        151
                                        152
                                        153
                                        154
                                        155
                                        156
                                        157
                                        158
                                        159
                                        160
                                        161
                                        162
                                        163
                                        164
                                        165
                                        166
                                        167
                                        168
                                        169
                                        170
                                        171
                                        172
                                        173
                                        174
                                        175
                                        176
                                        177
                                        178
                                        179
                                        180
                                        181
                                        182
                                        183
                                        184
                                        185
                                        186
                                        187
                                        188
                                        189
                                        190
                                        191
                                        192
                                        193
                                        194
                                        195
                                        196
                                        197
                                        198
                                        199
                                        200
                                        201
                                        202
                                        203
                                        204
                                        205
                                        206
                                        207
                                        208
                                        209
                                        210
                                        211
                                        212
                                        213
                                        214
                                        215
                                        216
                                        217
                                        218
                                        219
                                        220
                                        221
                                        222
                                        223
                                        224
                                        225
                                        226
                                        227
                                        228
                                        229
                                        230
                                        231
                                        232
                                        233
                                        234
                                        235
                                        236
                                        237
                                        238
                                        239
                                        240
                                        241
                                        242
                                        243
                                        244
                                        245
                                        246
                                        247
                                        248
                                        249
                                        250
                                        251
                                        252
                                        253
                                        254
                                        255
                                        256
                                        257
                                        258
                                        259
                                        260
                                        261
                                        262
                                        263
                                        264
                                        265
                                        266
                                        267
                                        268
                                        269
                                        270
                                        271
                                        272
                                        273
                                        274
                                        275
                                        276
                                        277
                                        278
                                        279
                                        280
                                        281
                                        282
                                        283
                                        284
                                        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

                                        1
                                        2
                                        3
                                        4
                                        5
                                        6
                                        7
                                        8
                                        9
                                        10
                                        11
                                        12
                                        13
                                        14
                                        15
                                        16
                                        17
                                        18
                                        19
                                        20
                                        21
                                        22
                                        23
                                        24
                                        25
                                        26
                                        27
                                        28
                                        29
                                        30
                                        31
                                        32
                                        33
                                        34
                                        35
                                        36
                                        37
                                        38
                                        39
                                        40
                                        41
                                        42
                                        43
                                        44
                                        45
                                        46
                                        47
                                        48
                                        49
                                        50
                                        51
                                        52
                                        53
                                        54
                                        55
                                        56
                                        57
                                        58
                                        59
                                        60
                                        61
                                        62
                                        63
                                        64
                                        65
                                        66
                                        67
                                        68
                                        69
                                        70
                                        71
                                        72
                                        73
                                        74
                                        75
                                        76
                                        77
                                        78
                                        79
                                        80
                                        81
                                        82
                                        83
                                        84
                                        85
                                        86
                                        87
                                        88
                                        89
                                        90
                                        91
                                        92
                                        93
                                        94
                                        95
                                        96
                                        97
                                        98
                                        99
                                        100
                                        101
                                        102
                                        103
                                        104
                                        105
                                        106
                                        107
                                        108
                                        109
                                        110
                                        111
                                        112
                                        113
                                        114
                                        115
                                        116
                                        117
                                        118
                                        119
                                        120
                                        121
                                        122
                                        123
                                        124
                                        125
                                        126
                                        127
                                        128
                                        129
                                        130
                                        131
                                        132
                                        133
                                        134
                                        135
                                        136
                                        137
                                        138
                                        139
                                        140
                                        141
                                        142
                                        143
                                        144
                                        145
                                        146
                                        147
                                        148
                                        149
                                        150
                                        151
                                        152
                                        153
                                        154
                                        155
                                        156
                                        157
                                        158
                                        159
                                        160
                                        161
                                        162
                                        163
                                        164
                                        165
                                        166
                                        167
                                        168
                                        169
                                        170
                                        171
                                        172
                                        173
                                        174
                                        175
                                        176
                                        177
                                        178
                                        179
                                        180
                                        181
                                        182
                                        183
                                        184
                                        185
                                        186
                                        187
                                        188
                                        189
                                        190
                                        191
                                        192
                                        193
                                        194
                                        195
                                        196
                                        197
                                        198
                                        199
                                        200
                                        201
                                        202
                                        203
                                        204
                                        205
                                        206
                                        207
                                        208
                                        209
                                        210
                                        211
                                        212
                                        213
                                        214
                                        215
                                        216
                                        217
                                        218
                                        219
                                        220
                                        221
                                        222
                                        223
                                        224
                                        225
                                        226
                                        227
                                        228
                                        229
                                        230
                                        231
                                        232
                                        233
                                        234
                                        235
                                        236
                                        237
                                        238
                                        239
                                        240
                                        241
                                        242
                                        243
                                        244
                                        245
                                        246
                                        247
                                        248
                                        249
                                        250
                                        251
                                        252
                                        253
                                        254
                                        255
                                        256
                                        257
                                        258
                                        259
                                        260
                                        261
                                        262
                                        263
                                        264
                                        265
                                        266
                                        267
                                        268
                                        269
                                        270
                                        271
                                        272
                                        273
                                        274
                                        275
                                        276
                                        277
                                        278
                                        279
                                        280
                                        281
                                        282
                                        283
                                        284
                                        285
                                        286
                                        287
                                        288
                                        289
                                        290
                                        291
                                        292
                                        293
                                        294
                                        295
                                        296
                                        297
                                        298
                                        299
                                        300
                                        301
                                        302
                                        303
                                        304
                                        305
                                        306
                                        307
                                        308
                                        309
                                        310
                                        311
                                        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实现电影购票系统(详细代码)的文章就介绍到这了

                                        原文链接:https://blog.csdn.net/helongqiang/article/details/120400506


                                        文章分类
                                        百科问答
                                        版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
                                        相关推荐