一、系统介绍
1.开发环境
开发工具:Eclipse2021
JDK版本:jdk1.8
Mysql版本:8.0.13
2.技术选型
Java+Swing+Mysql
3.系统功能
注册系统,登录系统;
3.1.用户
- 1.欢迎页:修改用户姓名和密码;
- 2.碟片排行榜:影片的详细信息;
- 3.购票信息:已购买车票的信息;
- 4.场次信息:电影场次的详细信息;
- 5.充值:充值余额;
- 6.搜索电影:搜索电影的详细信息;
3.2.管理员
- 1.对用户进行操作:用户信息的查询、删除;
- 2.对影院进行操作:影院信息的查询、删除、增加;
- 3.对场厅进行操作:场厅信息的查询、删除、增加;
- 4.对场次进行操作:场次信息的查询、删除、增加;
- 5.对电影进行操作:电影信息的查询、删除、增加;
4.数据库
- /*
- ?Navicat Premium Data Transfer
- ?Source Server ? ? ? ? : MySQL
- ?Source Server Type ? ?: MySQL
- ?Source Server Version : 80013
- ?Source Host ? ? ? ? ? : 127.0.0.1:3306
- ?Source Schema ? ? ? ? : swing_movie_house
- ?Target Server Type ? ?: MySQL
- ?Target Server Version : 80013
- ?File Encoding ? ? ? ? : 65001
- ?Date: 21/09/2021 12:33:55
- */
- ?
- SET NAMES utf8mb4;
- SET FOREIGN_KEY_CHECKS = 0;
- ?
- -- ----------------------------
- -- Table structure for cinema
- -- ----------------------------
- DROP TABLE IF EXISTS `cinema`;
- CREATE TABLE `cinema` ?(
- ? `cinema_id` int(11) NOT NULL AUTO_INCREMENT,
- ? `cname` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
- ? `address` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
- ? PRIMARY KEY (`cinema_id`) USING BTREE
- ) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;
- ?
- -- ----------------------------
- -- Records of cinema
- -- ----------------------------
- INSERT INTO `cinema` VALUES (6, '光明影院', '湖北武汉');
- INSERT INTO `cinema` VALUES (7, '大同影院', '湖南长沙');
- ?
- -- ----------------------------
- -- Table structure for comment
- -- ----------------------------
- DROP TABLE IF EXISTS `comment`;
- CREATE TABLE `comment` ?(
- ? `comment_id` int(11) NOT NULL AUTO_INCREMENT,
- ? `user_id` int(11) NOT NULL,
- ? `movie_id` int(11) NOT NULL,
- ? `content` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
- ? `datetime` datetime(0) NULL DEFAULT NULL,
- ? PRIMARY KEY (`comment_id`) USING BTREE,
- ? INDEX `comment_ibfk_1`(`user_id`) USING BTREE,
- ? INDEX `comment_ibfk_2`(`movie_id`) USING BTREE,
- ? CONSTRAINT `comment_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE RESTRICT,
- ? CONSTRAINT `comment_ibfk_2` FOREIGN KEY (`movie_id`) REFERENCES `movie` (`movie_id`) ON DELETE CASCADE ON UPDATE RESTRICT
- ) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;
- ?
- -- ----------------------------
- -- Records of comment
- -- ----------------------------
- ?
- -- ----------------------------
- -- Table structure for hall
- -- ----------------------------
- DROP TABLE IF EXISTS `hall`;
- CREATE TABLE `hall` ?(
- ? `hall_id` int(11) NOT NULL AUTO_INCREMENT,
- ? `hname` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
- ? `capacity` int(11) NULL DEFAULT NULL,
- ? `cinema_id` int(11) NOT NULL,
- ? PRIMARY KEY (`hall_id`) USING BTREE,
- ? INDEX `hall_ibfk_1`(`cinema_id`) USING BTREE,
- ? CONSTRAINT `hall_ibfk_1` FOREIGN KEY (`cinema_id`) REFERENCES `cinema` (`cinema_id`) ON DELETE CASCADE ON UPDATE CASCADE
- ) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;
- ?
- -- ----------------------------
- -- Records of hall
- -- ----------------------------
- INSERT INTO `hall` VALUES (12, '1厅', 50, 6);
- ?
- -- ----------------------------
- -- Table structure for movie
- -- ----------------------------
- DROP TABLE IF EXISTS `movie`;
- CREATE TABLE `movie` ?(
- ? `movie_id` int(11) NOT NULL AUTO_INCREMENT,
- ? `mname` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
- ? `type` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '电影类型',
- ? `detail` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
- ? `duration` int(11) NULL DEFAULT NULL,
- ? `img` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '保存图片名称',
- ? PRIMARY KEY (`movie_id`) USING BTREE
- ) ENGINE = InnoDB AUTO_INCREMENT = 14 CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;
- ?
- -- ----------------------------
- -- Records of movie
- -- ----------------------------
- INSERT INTO `movie` VALUES (12, '八佰', '抗战', '八佰', 120, NULL);
- INSERT INTO `movie` VALUES (13, '春秋', '历史', '春秋', 150, NULL);
- INSERT INTO `movie` VALUES (15, '1', '1', '1', 1, NULL);
- ?
- -- ----------------------------
- -- Table structure for session
- -- ----------------------------
- DROP TABLE IF EXISTS `session`;
- CREATE TABLE `session` ?(
- ? `session_id` int(11) NOT NULL AUTO_INCREMENT,
- ? `hall_id` int(11) NOT NULL,
- ? `cinema_id` int(11) NOT NULL,
- ? `movie_id` int(11) NOT NULL,
- ? `starttime` varchar(11) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
- ? `price` double NULL DEFAULT NULL,
- ? `remain` int(11) NULL DEFAULT NULL,
- ? PRIMARY KEY (`session_id`) USING BTREE,
- ? INDEX `hall_id`(`hall_id`) USING BTREE,
- ? INDEX `cinema_id`(`cinema_id`) USING BTREE,
- ? INDEX `movie_id`(`movie_id`) USING BTREE,
- ? CONSTRAINT `session_ibfk_1` FOREIGN KEY (`hall_id`) REFERENCES `hall` (`hall_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
- ? CONSTRAINT `session_ibfk_2` FOREIGN KEY (`cinema_id`) REFERENCES `cinema` (`cinema_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
- ? CONSTRAINT `session_ibfk_3` FOREIGN KEY (`movie_id`) REFERENCES `movie` (`movie_id`) ON DELETE RESTRICT ON UPDATE RESTRICT
- ) ENGINE = InnoDB AUTO_INCREMENT = 14 CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;
- ?
- -- ----------------------------
- -- Records of session
- -- ----------------------------
- INSERT INTO `session` VALUES (14, 12, 6, 12, '09:00:00', 50, 47);
- ?
- -- ----------------------------
- -- Table structure for ticket
- -- ----------------------------
- DROP TABLE IF EXISTS `ticket`;
- CREATE TABLE `ticket` ?(
- ? `ticket_id` int(11) NOT NULL AUTO_INCREMENT,
- ? `user_id` int(11) NOT NULL,
- ? `movie_id` int(11) NOT NULL,
- ? `session_id` int(11) NOT NULL,
- ? `seat` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
- ? PRIMARY KEY (`ticket_id`) USING BTREE,
- ? INDEX `ticket_ibfk_1`(`user_id`) USING BTREE,
- ? INDEX `ticket_ibfk_2`(`movie_id`) USING BTREE,
- ? INDEX `ticket_ibfk_3`(`session_id`) USING BTREE,
- ? CONSTRAINT `ticket_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
- ? CONSTRAINT `ticket_ibfk_2` FOREIGN KEY (`movie_id`) REFERENCES `movie` (`movie_id`) ON DELETE CASCADE ON UPDATE CASCADE,
- ? CONSTRAINT `ticket_ibfk_3` FOREIGN KEY (`session_id`) REFERENCES `session` (`session_id`) ON DELETE CASCADE ON UPDATE CASCADE
- ) ENGINE = InnoDB AUTO_INCREMENT = 64 CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;
- ?
- -- ----------------------------
- -- Records of ticket
- -- ----------------------------
- INSERT INTO `ticket` VALUES (64, 1, 12, 14, '3');
- ?
- -- ----------------------------
- -- Table structure for user
- -- ----------------------------
- DROP TABLE IF EXISTS `user`;
- CREATE TABLE `user` ?(
- ? `user_id` int(11) NOT NULL AUTO_INCREMENT,
- ? `uname` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
- ? `passwd` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
- ? `type` int(11) NULL DEFAULT 0 COMMENT '0代表普通用户,1代表管理员',
- ? `balance` double NULL DEFAULT NULL,
- ? `level` int(11) NULL DEFAULT NULL,
- ? PRIMARY KEY (`user_id`) USING BTREE
- ) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;
- ?
- -- ----------------------------
- -- Records of user
- -- ----------------------------
- INSERT INTO `user` VALUES (1, 'user', 'user', 0, 161, 1);
- INSERT INTO `user` VALUES (2, 'admin', 'admin', 1, 1, 1);
- ?
- SET FOREIGN_KEY_CHECKS = 1;
5.工程截图

二、系统展示
1.注册系统

2.登录系统

3.用户-欢迎界面

4.用户-影片排行榜

5.用户-购票信息

6.用户-场次信息

7.用户-充值余额

8.用户-搜索电影

9.管理员-首页

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

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

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

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

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

三、部分代码
AdminMainView.java
- package view;
- ?
- import java.awt.BorderLayout;
- import java.awt.Color;
- import java.awt.EventQueue;
- import java.awt.Font;
- import java.awt.GridLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- ?
- import javax.swing.BorderFactory;
- import javax.swing.ImageIcon;
- import javax.swing.JButton;
- import javax.swing.JDesktopPane;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- ?
- import entity.User;
- ?
- public class AdminMainView extends JFrame {
- ?? ?private JPanel main_panel = null;
- ?? ?private JPanel fun_panel = null;
- ?? ?private JDesktopPane fundesk = null;
- ?
- ?? ?private JButton oper_User = null;
- ?? ?private JButton oper_Cinema = null;
- ?? ?private JButton oper_Hall = null;
- ?? ?private JButton oper_Session = null;
- ?? ?private JButton oper_Movie = null;
- ?? ?private JButton back = null;
- ?
- ?? ?private JLabel lb_welcome = null;
- ?? ?private JLabel lb_image = null;
- ?? ?private User admin = null;
- ?
- ?? ?public AdminMainView() {
- ?? ??? ?init();
- ?? ??? ?RegisterListener();
- ?? ?}
- ?
- ?? ?public AdminMainView(User admin) {
- ?? ??? ?this.admin = admin;
- ?? ??? ?init();
- ?? ??? ?RegisterListener();
- ?? ?}
- ?
- ?? ?private void init() {
- ?? ??? ?main_panel = new JPanel(new BorderLayout());
- ?? ??? ?fun_panel = new JPanel(new GridLayout(8, 1, 0, 18));
- ?? ??? ?oper_User = new JButton("对用户进行操作");
- ?? ??? ?oper_Cinema = new JButton("对影院进行操作");
- ?? ??? ?oper_Hall = new JButton("对场厅进行操作");
- ?? ??? ?oper_Session = new JButton("对场次进行操作");
- ?? ??? ?oper_Movie = new JButton("对电影进行操作");
- ?? ??? ?back = new JButton("返回");
- ?
- ?? ??? ?fun_panel.add(new JLabel());
- ?? ??? ?fun_panel.add(oper_User);
- ?? ??? ?fun_panel.add(oper_Cinema);
- ?? ??? ?fun_panel.add(oper_Hall);
- ?? ??? ?fun_panel.add(oper_Session);
- ?? ??? ?fun_panel.add(oper_Movie);
- ?? ??? ?fun_panel.add(back);
- ?? ??? ?fun_panel.add(new JLabel());
- ?
- ?? ??? ?// 设置面板外观
- ?? ??? ?fun_panel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createRaisedBevelBorder(), "功能区"));
- ?
- ?? ??? ?lb_welcome = new JLabel("欢 迎 " + admin.getUname() + " 进 入 管 理 员 功 能 界 面");
- ?? ??? ?lb_welcome.setFont(new Font("楷体", Font.BOLD, 34));
- ?? ??? ?lb_welcome.setForeground(Color.BLUE);
- ?
- ?? ??? ?fundesk = new JDesktopPane();
- ?? ??? ?ImageIcon img = new ImageIcon(ClassLoader.getSystemResource("image/beijjing3.jpg"));
- ?? ??? ?lb_image = new JLabel(img);
- ?? ??? ?lb_image.setBounds(10, 10, img.getIconWidth(), img.getIconHeight());
- ?? ??? ?fundesk.add(lb_image, new Integer(Integer.MIN_VALUE));
- ?
- ?? ??? ?main_panel.add(lb_welcome, BorderLayout.NORTH);
- ?? ??? ?main_panel.add(fun_panel, BorderLayout.EAST);
- ?? ??? ?main_panel.add(fundesk, BorderLayout.CENTER);
- ?
- ?? ??? ?// 为了不让线程阻塞,来调用线程
- ?? ??? ?// 放入队列当中
- ?? ??? ?EventQueue.invokeLater(new Runnable() {
- ?
- ?? ??? ??? ?public void run() {
- ?? ??? ??? ??? ?new Thread(new thread()).start();
- ?? ??? ??? ?}
- ?? ??? ?});
- ?
- ?? ??? ?this.setTitle("管理员功能界面");
- ?? ??? ?this.getContentPane().add(main_panel);
- ?? ??? ?this.setSize(880, 600);
- ?? ??? ?this.setResizable(false);
- ?? ??? ?this.setVisible(true);
- ?? ??? ?this.setLocationRelativeTo(null);
- ?? ??? ?this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- ?? ?}
- ?
- ?? ?// 开启线程使得欢迎标签动起来
- ?? ?// 这是单线程
- ?? ?private class thread implements Runnable {
- ?
- ?? ??? ?@Override
- ?? ??? ?public void run() {
- ?? ??? ??? ?while (true) {// 死循环让其一直移动
- ?? ??? ??? ??? ?for (int i = 900; i > -700; i--) {
- ?? ??? ??? ??? ??? ?// for(int i=-100;i<900;i++){
- ?? ??? ??? ??? ??? ?try {
- ?? ??? ??? ??? ??? ??? ?Thread.sleep(10);// 让线程休眠100毫秒
- ?? ??? ??? ??? ??? ?} catch (InterruptedException e) {
- ?? ??? ??? ??? ??? ??? ?e.printStackTrace();
- ?? ??? ??? ??? ??? ?}
- ?? ??? ??? ??? ??? ?lb_welcome.setLocation(i, 5);
- ?? ??? ??? ??? ?}
- ?? ??? ??? ?}
- ?? ??? ?}
- ?
- ?? ?}
- ?
- ?? ?private void RegisterListener() {
- ?? ??? ?oper_User.addActionListener(new ActionListener() {
- ?
- ?? ??? ??? ?@Override
- ?? ??? ??? ?public void actionPerformed(ActionEvent e) {
- ?? ??? ??? ??? ?operUserView ouv = new operUserView();
- ?? ??? ??? ??? ?fundesk.add(ouv);
- ?? ??? ??? ??? ?ouv.toFront();
- ?? ??? ??? ?}
- ?? ??? ?});
- ?
- ?? ??? ?oper_Cinema.addActionListener(new ActionListener() {
- ?
- ?? ??? ??? ?@Override
- ?? ??? ??? ?public void actionPerformed(ActionEvent e) {
- ?? ??? ??? ??? ?operCinemaView ocv = new operCinemaView();
- ?? ??? ??? ??? ?fundesk.add(ocv);
- ?? ??? ??? ??? ?ocv.toFront();
- ?? ??? ??? ?}
- ?? ??? ?});
- ?
- ?? ??? ?oper_Hall.addActionListener(new ActionListener() {
- ?
- ?? ??? ??? ?@Override
- ?? ??? ??? ?public void actionPerformed(ActionEvent e) {
- ?? ??? ??? ??? ?operHallView ohv = new operHallView();
- ?? ??? ??? ??? ?fundesk.add(ohv);
- ?? ??? ??? ??? ?ohv.toFront();
- ?? ??? ??? ?}
- ?? ??? ?});
- ?
- ?? ??? ?oper_Session.addActionListener(new ActionListener() {
- ?
- ?? ??? ??? ?@Override
- ?? ??? ??? ?public void actionPerformed(ActionEvent e) {
- ?? ??? ??? ??? ?operSessionView osv = new operSessionView();
- ?? ??? ??? ??? ?fundesk.add(osv);
- ?? ??? ??? ??? ?osv.toFront();
- ?? ??? ??? ?}
- ?? ??? ?});
- ?
- ?? ??? ?oper_Movie.addActionListener(new ActionListener() {
- ?
- ?? ??? ??? ?@Override
- ?? ??? ??? ?public void actionPerformed(ActionEvent e) {
- ?? ??? ??? ??? ?operMovieView omv = new operMovieView();
- ?? ??? ??? ??? ?fundesk.add(omv);
- ?? ??? ??? ??? ?omv.toFront();
- ?? ??? ??? ?}
- ?? ??? ?});
- ?? ??? ?back.addActionListener(new ActionListener() {
- ?
- ?? ??? ??? ?@Override
- ?? ??? ??? ?public void actionPerformed(ActionEvent e) {
- ?? ??? ??? ??? ?new Login();
- ?? ??? ??? ??? ?AdminMainView.this.dispose();
- ?? ??? ??? ?}
- ?? ??? ?});
- ?? ?}
- }
MovieInfoView.java
- package view;
- ?
- import java.awt.Color;
- import java.awt.Font;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.text.SimpleDateFormat;
- import java.util.List;
- ?
- import javax.swing.GroupLayout;
- import javax.swing.GroupLayout.Alignment;
- import javax.swing.ImageIcon;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import javax.swing.JScrollPane;
- import javax.swing.JTable;
- import javax.swing.JTextField;
- import javax.swing.LayoutStyle.ComponentPlacement;
- import javax.swing.border.EmptyBorder;
- import javax.swing.table.DefaultTableModel;
- ?
- import entity.Comment;
- import entity.Movie;
- import entity.User;
- import service.CommentService;
- import service.MovieService;
- import service.UserService;
- import serviceimpl.CommentServiceImpl;
- import serviceimpl.MovieServiceImpl;
- import serviceimpl.UserServiceImpl;
- ?
- public class MovieInfoView extends JFrame {
- ?
- ?? ?private JPanel contentPane;
- ?? ?private JTable table;
- ?? ?JScrollPane scrollPane = null;
- ?
- ?? ?Movie movie = null;
- ?? ?User user = null;
- ?? ?MovieService ms = null;
- ?? ?CommentService cs = null;
- ?? ?UserService us = null;
- ?
- ?? ?public MovieInfoView(Movie movie, User user) {
- ?? ??? ?this.movie = movie;
- ?? ??? ?this.user = user;
- ?? ??? ?ms = new MovieServiceImpl();
- ?? ??? ?cs = new CommentServiceImpl();
- ?? ??? ?us = new UserServiceImpl();
- ?? ??? ?setTitle("用户选票界面");
- ?? ??? ?setBounds(260, 130, 620, 600);
- ?? ??? ?this.setLocationRelativeTo(null);
- ?
- ?? ??? ?contentPane = new JPanel();
- ?? ??? ?contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
- ?? ??? ?setContentPane(contentPane);
- ?
- ?? ??? ?JLabel lblNewLabel = new JLabel("New label");
- ?? ??? ?lblNewLabel.setIcon(new ImageIcon("image/" + movie.getImg()));
- ?
- ?? ??? ?JLabel label = new JLabel("正在热映···");
- ?
- ?? ??? ?JLabel lblNewLabel_1 = new JLabel("影片名:");
- ?? ??? ?lblNewLabel_1.setFont(new Font("楷体", Font.BOLD, 18));
- ?
- ?? ??? ?JLabel label_1 = new JLabel("类型:");
- ?
- ?? ??? ?JLabel label_2 = new JLabel("时长:");
- ?
- ?? ??? ?JLabel label_3 = new JLabel("电影详情:");
- ?
- ?? ??? ?JLabel label_4 = new JLabel(movie.getMname());
- ?? ??? ?label_4.setFont(new Font("楷体", Font.BOLD, 18));
- ?
- ?? ??? ?JButton btnNewButton = new JButton("购买");
- ?? ??? ?btnNewButton.setForeground(Color.BLUE);
- ?? ??? ?btnNewButton.addActionListener(new ActionListener() {
- ?
- ?? ??? ??? ?@Override
- ?? ??? ??? ?public void actionPerformed(ActionEvent e) {
- ?? ??? ??? ??? ?new UserUi(user, 3);
- ?? ??? ??? ??? ?movie.getMovie_id();
- ?? ??? ??? ??? ?List<Movie> movieByName = ms.getMovieByName(movie.getMname());
- ?
- ?? ??? ??? ??? ?for (Movie movie2 : movieByName) {
- ?? ??? ??? ??? ??? ?System.out.println(movie2);
- ?? ??? ??? ??? ?}
- ?? ??? ??? ??? ?MovieInfoView.this.dispose();
- ?
- ?? ??? ??? ?}
- ?? ??? ?});
- ?
- ?? ??? ?JButton button = new JButton("取消");
- ?? ??? ?button.setForeground(Color.RED);
- ?? ??? ?button.addActionListener(new ActionListener() {
- ?? ??? ??? ?public void actionPerformed(ActionEvent e) {
- ?? ??? ??? ??? ?MovieInfoView.this.dispose();
- ?? ??? ??? ?}
- ?? ??? ?});
- ?
- ?? ??? ?scrollPane = new JScrollPane();
- ?? ??? ?scrollPane.setEnabled(false);
- ?? ??? ?scrollPane.setVisible(false);
- ?
- ?? ??? ?JButton button_1 = new JButton("查看评论");
- ?? ??? ?button_1.addActionListener(new ActionListener() {
- ?? ??? ??? ?public void actionPerformed(ActionEvent e) {
- ?? ??? ??? ??? ?scrollPane.setVisible(true);
- ?? ??? ??? ??? ?showComment();
- ?? ??? ??? ??? ?table.repaint();
- ?
- ?? ??? ??? ?}
- ?? ??? ?});
- ?
- ?? ??? ?button_1.setForeground(Color.MAGENTA);
- ?
- ?? ??? ?JLabel lblNewLabel_2 = new JLabel("欢迎来到电影详情界面");
- ?? ??? ?lblNewLabel_2.setFont(new Font("新宋体", Font.BOLD, 20));
- ?? ??? ?lblNewLabel_2.setForeground(Color.BLACK);
- ?
- ?? ??? ?JLabel label_5 = new JLabel(movie.getType());
- ?
- ?? ??? ?JLabel label_6 = new JLabel(movie.getDuration() + "分钟");
- ?
- ?? ??? ?JLabel label_7 = new JLabel(movie.getDetail());
- ?
- ?? ??? ?GroupLayout gl_contentPane = new GroupLayout(contentPane);
- ?? ??? ?gl_contentPane.setHorizontalGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING).addGroup(gl_contentPane
- ?? ??? ??? ??? ?.createSequentialGroup()
- ?? ??? ??? ??? ?.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
- ?? ??? ??? ??? ??? ??? ?.addGroup(gl_contentPane.createSequentialGroup().addGap(218)
- ?? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(gl_contentPane.createSequentialGroup().addComponent(label_3)
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addPreferredGap(ComponentPlacement.RELATED).addComponent(label_7,
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE, 70, GroupLayout.PREFERRED_SIZE))
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(gl_contentPane.createSequentialGroup().addComponent(lblNewLabel_1)
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addPreferredGap(ComponentPlacement.RELATED)
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(label_4, GroupLayout.PREFERRED_SIZE, 137,
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE))
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(gl_contentPane.createSequentialGroup()
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(label_2)
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(gl_contentPane.createSequentialGroup()
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addPreferredGap(ComponentPlacement.RELATED)
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(label_1)))
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGap(4)
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(label_6, GroupLayout.PREFERRED_SIZE, 55,
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE)
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(label_5, GroupLayout.PREFERRED_SIZE, 82,
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE)))
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(gl_contentPane.createSequentialGroup().addComponent(btnNewButton)
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGap(18)
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(button, GroupLayout.PREFERRED_SIZE, 71,
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE)
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGap(18).addComponent(button_1))))
- ?? ??? ??? ??? ??? ??? ?.addGroup(gl_contentPane.createSequentialGroup().addGap(36).addComponent(label))
- ?? ??? ??? ??? ??? ??? ?.addGroup(gl_contentPane.createSequentialGroup().addGap(170).addComponent(lblNewLabel_2))
- ?? ??? ??? ??? ??? ??? ?.addComponent(lblNewLabel, GroupLayout.PREFERRED_SIZE, 200, GroupLayout.PREFERRED_SIZE)
- ?? ??? ??? ??? ??? ??? ?.addGroup(gl_contentPane.createSequentialGroup().addGap(84).addComponent(scrollPane,
- ?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE, 464, GroupLayout.PREFERRED_SIZE)))
- ?? ??? ??? ??? ?.addContainerGap(46, Short.MAX_VALUE)));
- ?? ??? ?gl_contentPane.setVerticalGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING)
- ?? ??? ??? ??? ?.addGroup(gl_contentPane.createSequentialGroup()
- ?? ??? ??? ??? ??? ??? ?.addGroup(gl_contentPane
- ?? ??? ??? ??? ??? ??? ??? ??? ?.createParallelGroup(Alignment.LEADING)
- ?? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(gl_contentPane.createSequentialGroup().addGap(46).addComponent(label)
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addPreferredGap(ComponentPlacement.UNRELATED)
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(lblNewLabel, GroupLayout.DEFAULT_SIZE, 277, Short.MAX_VALUE))
- ?? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(gl_contentPane.createSequentialGroup().addContainerGap()
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(lblNewLabel_2).addGap(58)
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(lblNewLabel_1).addComponent(label_4,
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE, 21, GroupLayout.PREFERRED_SIZE))
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addPreferredGap(ComponentPlacement.RELATED, 53, Short.MAX_VALUE)
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(label_1).addComponent(label_5))
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGap(18)
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(label_2).addComponent(label_6))
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGap(18)
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(label_3).addComponent(label_7))
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGap(125)
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(btnNewButton).addComponent(button)
- ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(button_1))))
- ?? ??? ??? ??? ??? ??? ?.addGap(28)
- ?? ??? ??? ??? ??? ??? ?.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 139, GroupLayout.PREFERRED_SIZE)));
- ?
- ?? ??? ?showComment();
- ?? ??? ?scrollPane.setViewportView(table);
- ?? ??? ?contentPane.setLayout(gl_contentPane);
- ?? ??? ?this.setVisible(true);
- ?? ?}
- ?
- ?? ?public void showComment() {
- ?? ??? ?List<Comment> commlist = cs.getAllCommentByMovieId(movie.getMovie_id());
- ?? ??? ?int recordrow = 0;
- ?
- ?? ??? ?if (commlist != null) {
- ?? ??? ??? ?recordrow = commlist.size();
- ?? ??? ?}
- ?? ??? ?String[][] rinfo = new String[recordrow][3];
- ?
- ?? ??? ?SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd hh:mm");
- ?? ??? ?for (int i = 0; i < recordrow; i++) {
- ?? ??? ??? ?for (int j = 0; j < 3; j++) {
- ?? ??? ??? ??? ?rinfo[i][j] = new String();
- ?
- ?? ??? ??? ??? ?rinfo[i][0] = us.queryUserById(commlist.get(i).getUser_id()).getUname();
- ?? ??? ??? ??? ?rinfo[i][1] = commlist.get(i).getContent();
- ?? ??? ??? ??? ?rinfo[i][2] = sdf.format(commlist.get(i).getDatetime());
- ?? ??? ??? ?}
- ?? ??? ?}
- ?
- ?? ??? ?String[] tbheadnames = { "用户名", "评论内容", "评论时间" };
- ?
- ?? ??? ?table = new JTable(rinfo, tbheadnames);
- ?? ??? ?table.setBorder(null);
- ?? ??? ?table.setRowHeight(20);
- ?? ??? ?table.setEnabled(false);
- ?? ??? ?table.getColumnModel().getColumn(0).setPreferredWidth(30);
- ?? ??? ?table.getTableHeader().setFont(new Font("楷体", 1, 20));
- ?? ??? ?table.getTableHeader().setBackground(Color.CYAN);
- ?? ??? ?table.getTableHeader().setReorderingAllowed(false); // 不可交换顺序
- ?? ??? ?table.getTableHeader().setResizingAllowed(true); // 不可拉动表格
- ?
- ?? ??? ?scrollPane.add(table);
- ?? ??? ?scrollPane.setBorder(null);
- ?
- ?? ??? ?table.repaint();
- ?
- ?? ?}
- }
operCinemaView.java
- package view;
- ?
- import java.awt.BorderLayout;
- import java.awt.GridLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- import java.util.ArrayList;
- import java.util.List;
- ?
- import javax.swing.BorderFactory;
- import javax.swing.JButton;
- import javax.swing.JComboBox;
- import javax.swing.JInternalFrame;
- import javax.swing.JLabel;
- import javax.swing.JOptionPane;
- import javax.swing.JPanel;
- import javax.swing.JTable;
- import javax.swing.JTextField;
- import javax.swing.event.TableModelListener;
- import javax.swing.table.TableModel;
- ?
- import entity.Cinema;
- import service.CinemaService;
- import serviceimpl.CinemaServiceImpl;
- ?
- public class operCinemaView extends JInternalFrame {
- ?? ?private JPanel pl_main = null;
- ?? ?private JPanel pl_button = null;
- ?? ?private JPanel pl_text = null;
- ?? ?private JTable table = null;
- ?? ?private JButton btn_add = null;
- ?? ?private JButton btn_query = null;
- ?? ?private JButton btn_del = null;
- ?? ?private JComboBox<String> cb_query = null;
- ?? ?private JButton btn_back = null;
- ?? ?private JLabel lb_name = null;
- ?? ?private JLabel lb_address = null;
- ?? ?private JTextField tf_qname = null;// 查询时输入的名称
- ?? ?private JTextField tf_name = null;// 添加输入的名称
- ?? ?private JTextField tf_address = null;
- ?? ?private CinemaService cinemabiz = null;
- ?? ?private List<Cinema> cinemaList = null;
- ?? ?private CinemaInfoTableModel infoTableModel = null;
- //?? ?private List<Hall> hallList = null;
- //?? ?private List<Session> sessionList = null;
- //?? ?private HallBiz hallbiz = null;
- //?? ?private SessionBiz sessionbiz = null;
- ?
- ?? ?public operCinemaView() {
- ?? ??? ?cinemabiz = new CinemaServiceImpl();
- //?? ??? ?hallbiz = new HallBizImpl();
- //?? ??? ?sessionbiz = new SessionBizImpl();
- ?? ??? ?init();
- ?? ??? ?RegisterListener();
- ?? ?}
- ?
- ?? ?private void init() {
- ?? ??? ?pl_main = new JPanel(new BorderLayout());
- ?? ??? ?pl_button = new JPanel(new GridLayout(8, 1, 0, 40));
- ?? ??? ?pl_text = new JPanel(new GridLayout(1, 4));
- ?? ??? ?cinemaList = new ArrayList<Cinema>();
- ?? ??? ?table = new JTable();
- ?? ??? ?refreshTable(cinemaList);
- ?? ??? ?cb_query = new JComboBox<String>(new String[] { "查询所有影院", "按名字查找影院" });
- ?? ??? ?tf_qname = new JTextField(8);
- ?? ??? ?tf_qname.setEnabled(false);
- ?? ??? ?btn_query = new JButton("查询");
- ?? ??? ?btn_add = new JButton("增添影院");
- ?? ??? ?btn_del = new JButton("删除影院");
- ?? ??? ?btn_del.setEnabled(false);
- ?? ??? ?btn_back = new JButton("退出窗口");
- ?? ??? ?lb_name = new JLabel("影院名称: ");
- ?? ??? ?tf_name = new JTextField(8);
- ?? ??? ?lb_address = new JLabel("影院地址: ");
- ?? ??? ?tf_address = new JTextField(12);
- ?? ??? ?pl_main.add(table.getTableHeader(), BorderLayout.PAGE_START);
- ?? ??? ?pl_main.add(table);
- ?? ??? ?pl_main.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(null, null), "查询信息"));
- ?? ??? ?pl_button.add(new JLabel());
- ?? ??? ?pl_button.add(cb_query);
- ?? ??? ?pl_button.add(tf_qname);
- ?? ??? ?pl_button.add(btn_query);
- ?? ??? ?pl_button.add(btn_add);
- ?? ??? ?pl_button.add(btn_del);
- ?? ??? ?pl_button.add(new JLabel());
- ?? ??? ?pl_button.add(btn_back);
- ?
- ?? ??? ?pl_text.add(lb_name);
- ?? ??? ?pl_text.add(tf_name);
- ?? ??? ?pl_text.add(lb_address);
- ?? ??? ?pl_text.add(tf_address);
- ?? ??? ?this.add(pl_main, BorderLayout.CENTER);
- ?? ??? ?this.add(pl_button, BorderLayout.EAST);
- ?? ??? ?this.add(pl_text, BorderLayout.NORTH);
- ?? ??? ?this.setVisible(true);
- ?? ??? ?this.setTitle("影院操作界面");
- ?? ??? ?this.setSize(700, 530);
- ?? ??? ?this.setIconifiable(true);
- ?? ??? ?this.setClosable(true);
- ?? ??? ?this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
- ?? ?}
- ?
- ?? ?private void RegisterListener() {
- ?
- ?? ??? ?table.addMouseListener(new MouseAdapter() {
- ?? ??? ??? ?@Override
- ?? ??? ??? ?public void mouseClicked(MouseEvent e) {
- ?? ??? ??? ??? ?if (table.getSelectedRow() != -1) {
- ?? ??? ??? ??? ??? ?btn_del.setEnabled(true);
- ?? ??? ??? ??? ?}
- ?? ??? ??? ??? ?int row = table.getSelectedRow();
- ?? ??? ??? ??? ?String name = table.getValueAt(row, 1).toString();
- ?? ??? ??? ??? ?String address = table.getValueAt(row, 2).toString();
- ?? ??? ??? ??? ?tf_name.setText(name);
- ?? ??? ??? ??? ?tf_address.setText(address);
- ?? ??? ??? ?}
- ?? ??? ?});
- ?? ??? ?cb_query.addActionListener(new ActionListener() {
- ?
- ?? ??? ??? ?@Override
- ?? ??? ??? ?public void actionPerformed(ActionEvent e) {
- ?? ??? ??? ??? ?if (cb_query.getSelectedIndex() + 1 == 2) {
- ?? ??? ??? ??? ??? ?tf_qname.setEnabled(true);
- ?? ??? ??? ??? ?} else {
- ?? ??? ??? ??? ??? ?tf_qname.setEnabled(false);
- ?? ??? ??? ??? ?}
- ?? ??? ??? ?}
- ?? ??? ?});
- ?? ??? ?btn_query.addActionListener(new ActionListener() {
- ?
- ?? ??? ??? ?@Override
- ?? ??? ??? ?public void actionPerformed(ActionEvent e) {
- ?? ??? ??? ??? ?if (cb_query.getSelectedIndex() + 1 == 1) {
- ?? ??? ??? ??? ??? ?cinemaList = cinemabiz.queryAllCinema();
- ?? ??? ??? ??? ??? ?refreshTable(cinemaList);
- ?? ??? ??? ??? ?} else {
- ?? ??? ??? ??? ??? ?String name = tf_qname.getText().trim();
- ?? ??? ??? ??? ??? ?cinemaList = cinemabiz.queryCinemaByName(name);
- ?? ??? ??? ??? ??? ?refreshTable(cinemaList);
- ?? ??? ??? ??? ?}
- ?? ??? ??? ?}
- ?? ??? ?});
- ?
- ?? ??? ?btn_add.addActionListener(new ActionListener() {
- ?
- ?? ??? ??? ?@Override
- ?? ??? ??? ?public void actionPerformed(ActionEvent e) {
- ?? ??? ??? ??? ?String name = tf_name.getText().trim();
- ?? ??? ??? ??? ?String address = tf_address.getText().trim();
- ?? ??? ??? ??? ?if (name.equals("")) {
- ?? ??? ??? ??? ??? ?JOptionPane.showMessageDialog(operCinemaView.this, "影院名称不能为空!");
- ?? ??? ??? ??? ?} else if (address.equals("")) {
- ?? ??? ??? ??? ??? ?JOptionPane.showMessageDialog(operCinemaView.this, "影院地址不能为空!");
- ?? ??? ??? ??? ?} else {
- ?? ??? ??? ??? ??? ?int flag = JOptionPane.showConfirmDialog(operCinemaView.this, "确认是否添加?", "确认信息",
- ?? ??? ??? ??? ??? ??? ??? ?JOptionPane.YES_NO_OPTION);
- ?? ??? ??? ??? ??? ?if (flag == JOptionPane.YES_OPTION) {
- ?? ??? ??? ??? ??? ??? ?Cinema cinema = new Cinema(name, address);
- ?? ??? ??? ??? ??? ??? ?boolean res = cinemabiz.addCinema(cinema);
- ?? ??? ??? ??? ??? ??? ?if (res) {
- ?? ??? ??? ??? ??? ??? ??? ?cinemaList = cinemabiz.queryAllCinema();
- ?? ??? ??? ??? ??? ??? ??? ?refreshTable(cinemaList);
- ?? ??? ??? ??? ??? ??? ??? ?JOptionPane.showMessageDialog(operCinemaView.this, "添加成功!");
- ?? ??? ??? ??? ??? ??? ?} else {
- ?? ??? ??? ??? ??? ??? ??? ?JOptionPane.showMessageDialog(operCinemaView.this, "添加失败!");
- ?? ??? ??? ??? ??? ??? ?}
- ?? ??? ??? ??? ??? ?}
- ?? ??? ??? ??? ?}
- ?? ??? ??? ?}
- ?? ??? ?});
- ?
- ?? ??? ?btn_del.addActionListener(new ActionListener() {
- ?
- ?? ??? ??? ?@Override
- ?? ??? ??? ?public void actionPerformed(ActionEvent e) {
- ?? ??? ??? ??? ?int row = table.getSelectedRow();
- ?? ??? ??? ??? ?int id = (Integer) table.getValueAt(row, 0);
- ?? ??? ??? ??? ?int flag = JOptionPane.showConfirmDialog(operCinemaView.this, "确认是否删除此影院?", "确认信息",
- ?? ??? ??? ??? ??? ??? ?JOptionPane.YES_NO_OPTION);
- ?? ??? ??? ??? ?if (flag == JOptionPane.YES_OPTION) {
- ?? ??? ??? ??? ??? ?boolean res = cinemabiz.deleteCinemaById(id);
- ?? ??? ??? ??? ??? ?/*
- ?? ??? ??? ??? ??? ? * if(res) { //更新数据 hallList = hallbiz.queryAllHall(); int hid = 0; for(int i =
- ?? ??? ??? ??? ??? ? * 0; i < hallList.size(); i++) { if(id == hallList.get(i).getCid()) { hid =
- ?? ??? ??? ??? ??? ? * hallList.get(i).getId(); hallbiz.delHall(hid); } } sessionList =
- ?? ??? ??? ??? ??? ? * sessionbiz.queryAllSession(); for(int i = 0; i < sessionList.size(); i++) {
- ?? ??? ??? ??? ??? ? * if(hid == sessionList.get(i).getHid()) {
- ?? ??? ??? ??? ??? ? * sessionbiz.delSession(sessionList.get(i).getId()); } } }
- ?? ??? ??? ??? ??? ? */
- ?? ??? ??? ??? ??? ?cinemaList = cinemabiz.queryAllCinema();
- ?? ??? ??? ??? ??? ?refreshTable(cinemaList);
- ?? ??? ??? ??? ?}
- ?? ??? ??? ?}
- ?? ??? ?});
- ?? ??? ?btn_back.addActionListener(new ActionListener() {
- ?
- ?? ??? ??? ?@Override
- ?? ??? ??? ?public void actionPerformed(ActionEvent e) {
- ?? ??? ??? ??? ?operCinemaView.this.dispose();
- ?? ??? ??? ?}
- ?? ??? ?});
- ?? ?}
- ?
- ?? ?public class CinemaInfoTableModel implements TableModel {
- ?? ??? ?public List<Cinema> cinemaList = null;
- ?
- ?? ??? ?public CinemaInfoTableModel(List<Cinema> cinemaList) {
- ?? ??? ??? ?this.cinemaList = cinemaList;
- ?? ??? ?}
- ?
- ?? ??? ?@Override
- ?? ??? ?public int getRowCount() {
- ?? ??? ??? ?return cinemaList.size();
- ?? ??? ?}
- ?
- ?? ??? ?@Override
- ?? ??? ?public int getColumnCount() {
- ?? ??? ??? ?return 3;
- ?? ??? ?}
- ?
- ?? ??? ?@Override
- ?? ??? ?public String getColumnName(int columnIndex) {
- ?? ??? ??? ?if (columnIndex == 0) {
- ?? ??? ??? ??? ?return "影院ID";
- ?? ??? ??? ?} else if (columnIndex == 1) {
- ?? ??? ??? ??? ?return "影院名称";
- ?? ??? ??? ?} else if (columnIndex == 2) {
- ?? ??? ??? ??? ?return "影院地址";
- ?? ??? ??? ?} else {
- ?? ??? ??? ??? ?return "出错";
- ?? ??? ??? ?}
- ?? ??? ?}
- ?
- ?? ??? ?@Override
- ?? ??? ?public Class<?> getColumnClass(int columnIndex) {
- ?? ??? ??? ?return String.class;
- ?? ??? ?}
- ?
- ?? ??? ?@Override
- ?? ??? ?public boolean isCellEditable(int rowIndex, int columnIndex) {
- ?? ??? ??? ?return false;
- ?? ??? ?}
- ?
- ?? ??? ?@Override
- ?? ??? ?public Object getValueAt(int rowIndex, int columnIndex) {
- ?? ??? ??? ?Cinema cinema = cinemaList.get(rowIndex);
- ?? ??? ??? ?if (columnIndex == 0) {
- ?? ??? ??? ??? ?return cinema.getCinema_id();
- ?? ??? ??? ?} else if (columnIndex == 1) {
- ?? ??? ??? ??? ?return cinema.getCname();
- ?? ??? ??? ?} else if (columnIndex == 2) {
- ?? ??? ??? ??? ?return cinema.getAddress();
- ?? ??? ??? ?} else {
- ?? ??? ??? ??? ?return "出错";
- ?? ??? ??? ?}
- ?? ??? ?}
- ?
- ?? ??? ?@Override
- ?? ??? ?public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
- ?? ??? ??? ?// TODO Auto-generated method stub
- ?
- ?? ??? ?}
- ?
- ?? ??? ?@Override
- ?? ??? ?public void addTableModelListener(TableModelListener l) {
- ?? ??? ??? ?// TODO Auto-generated method stub
- ?
- ?? ??? ?}
- ?
- ?? ??? ?@Override
- ?? ??? ?public void removeTableModelListener(TableModelListener l) {
- ?? ??? ??? ?// TODO Auto-generated method stub
- ?
- ?? ??? ?}
- ?? ?}
- ?
- ?? ?private void refreshTable(List<Cinema> cinemaList) {
- ?? ??? ?infoTableModel = new CinemaInfoTableModel(cinemaList);
- ?? ??? ?table.setModel(infoTableModel);
- ?? ??? ?table.setRowHeight(20);
- ?? ?}
- }
operHallView.java
- package view;
- ?
- import java.awt.BorderLayout;
- import java.awt.GridLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- import java.util.ArrayList;
- import java.util.List;
- ?
- import javax.swing.BorderFactory;
- import javax.swing.JButton;
- import javax.swing.JInternalFrame;
- import javax.swing.JLabel;
- import javax.swing.JOptionPane;
- import javax.swing.JPanel;
- import javax.swing.JTable;
- import javax.swing.JTextField;
- import javax.swing.event.TableModelListener;
- import javax.swing.table.TableModel;
- ?
- import entity.Cinema;
- import entity.Hall;
- import entity.Session;
- import service.CinemaService;
- import service.HallService;
- import serviceimpl.CinemaServiceImpl;
- import serviceimpl.HallServiceImpl;
- import serviceimpl.SessionServiceImpl;
- import util.Check;
- ?
- public class operHallView extends JInternalFrame {
- ?? ?private JPanel pl_main = null;
- ?? ?private JPanel pl_button = null;
- ?? ?private JPanel pl_text = null;
- ?? ?private JTable table = null;
- ?? ?private JButton btn_add = null;
- ?? ?private JButton btn_del = null;
- ?? ?private JButton btn_query = null;
- ?? ?private JButton btn_back = null;
- ?? ?private JLabel lb_name = null;
- ?? ?private JLabel lb_cid = null;
- ?? ?private JLabel lb_capacity = null;
- ?? ?private JTextField tf_name = null;// 添加输入的名称
- ?? ?private JTextField tf_cid = null;// 添加时输入的所属影院id
- ?? ?private JTextField tf_capacity = null;// 添加输入的名称
- ?? ?private HallService hallbiz = null;
- ?? ?private CinemaService cinemabiz = null;
- ?? ?private SessionServiceImpl sessionbiz = null;
- ?? ?private List<Hall> hallList = null;
- ?? ?private HallInfoTableModel infoTableModel = null;
- ?
- ?? ?public operHallView() {
- ?? ??? ?hallbiz = new HallServiceImpl();
- ?? ??? ?cinemabiz = new CinemaServiceImpl();// 查询出所有的影院与cid进行匹配,显示影院名称
- ?? ??? ?sessionbiz = new SessionServiceImpl();
- ?? ??? ?init();
- ?? ??? ?RegisterListener();
- ?? ?}
- ?
- ?? ?private void init() {
- ?? ??? ?pl_main = new JPanel(new BorderLayout());
- ?? ??? ?pl_button = new JPanel(new GridLayout(6, 1, 0, 40));
- ?? ??? ?pl_text = new JPanel(new GridLayout(1, 6));
- ?? ??? ?hallList = new ArrayList<Hall>();
- ?? ??? ?table = new JTable();
- ?? ??? ?// 绑定JTabel,呈现数据
- ?? ??? ?refreshTable(hallList);
- ?? ??? ?btn_query = new JButton("查询所有场厅");
- ?? ??? ?btn_add = new JButton("增添场厅");
- ?? ??? ?btn_del = new JButton("删除场厅");
- ?? ??? ?btn_del.setEnabled(false);
- ?? ??? ?btn_back = new JButton("退出窗口");
- ?? ??? ?tf_name = new JTextField(8);
- ?? ??? ?tf_cid = new JTextField(8);
- ?? ??? ?tf_capacity = new JTextField(8);
- ?? ??? ?lb_name = new JLabel("场厅名称");
- ?? ??? ?lb_cid = new JLabel("所属影院id");
- ?? ??? ?lb_capacity = new JLabel("场厅容量");
- ?? ??? ?pl_main.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(null, null), "查询信息"));
- ?? ??? ?pl_main.add(table.getTableHeader(), BorderLayout.PAGE_START);
- ?? ??? ?pl_main.add(table);
- ?? ??? ?this.add(pl_main, BorderLayout.CENTER);
- ?
- ?? ??? ?pl_button.add(new JLabel());
- ?? ??? ?pl_button.add(btn_query);
- ?? ??? ?pl_button.add(btn_add);
- ?? ??? ?pl_button.add(btn_del);
- ?? ??? ?pl_button.add(new JLabel());
- ?? ??? ?pl_button.add(btn_back);
- ?? ??? ?this.add(pl_button, BorderLayout.EAST);
- ?
- ?? ??? ?pl_text.add(lb_name);
- ?? ??? ?pl_text.add(tf_name);
- ?? ??? ?pl_text.add(lb_cid);
- ?? ??? ?pl_text.add(tf_cid);
- ?? ??? ?pl_text.add(lb_capacity);
- ?? ??? ?pl_text.add(tf_capacity);
- ?? ??? ?this.add(pl_text, BorderLayout.NORTH);
- ?? ??? ?this.setVisible(true);
- ?? ??? ?this.setTitle("场厅操作界面");
- ?? ??? ?this.setSize(700, 530);
- ?? ??? ?this.setIconifiable(true);
- ?? ??? ?this.setClosable(true);
- ?? ??? ?this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
- ?? ?}
- ?
- ?? ?private void RegisterListener() {
- ?? ??? ?table.addMouseListener(new MouseAdapter() {
- ?? ??? ??? ?@Override
- ?? ??? ??? ?public void mouseClicked(MouseEvent e) {
- ?? ??? ??? ??? ?// 加入选中一行,删除按钮变为可用
- ?? ??? ??? ??? ?if (table.getSelectedRow() != -1) {
- ?? ??? ??? ??? ??? ?btn_del.setEnabled(true);
- ?? ??? ??? ??? ?}
- ?? ??? ??? ??? ?int row = table.getSelectedRow();
- ?? ??? ??? ??? ?String name = table.getValueAt(row, 1).toString();
- ?? ??? ??? ??? ?String cid = table.getValueAt(row, 2).toString();
- ?? ??? ??? ??? ?String capacity = table.getValueAt(row, 3).toString();
- ?? ??? ??? ??? ?tf_name.setText(name);
- ?? ??? ??? ??? ?tf_cid.setText(cid);
- ?? ??? ??? ??? ?tf_capacity.setText(capacity);
- ?? ??? ??? ?}
- ?? ??? ?});
- ?
- ?? ??? ?btn_add.addActionListener(new ActionListener() {
- ?
- ?? ??? ??? ?@Override
- ?? ??? ??? ?public void actionPerformed(ActionEvent e) {
- ?? ??? ??? ??? ?String name = tf_name.getText().trim();
- ?? ??? ??? ??? ?String cid = tf_cid.getText().trim();
- ?? ??? ??? ??? ?String capacity = tf_capacity.getText().trim();
- ?? ??? ??? ??? ?if (name.equals("")) {
- ?? ??? ??? ??? ??? ?JOptionPane.showMessageDialog(operHallView.this, "场厅名称不能为空!");
- ?? ??? ??? ??? ?} else if (cid.equals("")) {
- ?? ??? ??? ??? ??? ?JOptionPane.showMessageDialog(operHallView.this, "所属影院id不能为空!");
- ?? ??? ??? ??? ?} else if (capacity.equals("")) {
- ?? ??? ??? ??? ??? ?JOptionPane.showMessageDialog(operHallView.this, "场厅容量不能为空!");
- ?? ??? ??? ??? ?} else if (!Check.isNumber(cid)) {
- ?? ??? ??? ??? ??? ?JOptionPane.showMessageDialog(operHallView.this, "所属影院id只能为数字!");
- ?? ??? ??? ??? ?} else if (!Check.isNumber(capacity)) {
- ?? ??? ??? ??? ??? ?JOptionPane.showMessageDialog(operHallView.this, "场厅容量只能为数字!");
- ?? ??? ??? ??? ?} else {
- ?? ??? ??? ??? ??? ?int flag = JOptionPane.showConfirmDialog(operHallView.this, "是否添加此场厅?", "确认信息",
- ?? ??? ??? ??? ??? ??? ??? ?JOptionPane.YES_NO_OPTION);
- ?? ??? ??? ??? ??? ?if (flag == JOptionPane.YES_OPTION) {
- ?? ??? ??? ??? ??? ??? ?Hall hall = new Hall(name, new Integer(capacity), new Integer(cid));
- ?? ??? ??? ??? ??? ??? ?boolean res = hallbiz.addHall(hall);
- ?
- ?? ??? ??? ??? ??? ??? ?hallList = hallbiz.queryAllHall();
- ?? ??? ??? ??? ??? ??? ?refreshTable(hallList);
- ?? ??? ??? ??? ??? ??? ?if (res) {
- ?? ??? ??? ??? ??? ??? ??? ?JOptionPane.showMessageDialog(operHallView.this, "添加成功!");
- ?? ??? ??? ??? ??? ??? ?} else {
- ?? ??? ??? ??? ??? ??? ??? ?JOptionPane.showMessageDialog(operHallView.this, "添加失败!");
- ?? ??? ??? ??? ??? ??? ?}
- ?? ??? ??? ??? ??? ?}
- ?? ??? ??? ??? ?}
- ?? ??? ??? ?}
- ?? ??? ?});
- ?? ??? ?btn_query.addActionListener(new ActionListener() {
- ?
- ?? ??? ??? ?@Override
- ?? ??? ??? ?public void actionPerformed(ActionEvent e) {
- ?? ??? ??? ??? ?// 清除数据,防止累加
- ?? ??? ??? ??? ?if (hallList != null) {
- ?? ??? ??? ??? ??? ?hallList.clear();
- ?? ??? ??? ??? ?}
- ?? ??? ??? ??? ?hallList = hallbiz.queryAllHall();
- ?? ??? ??? ??? ?refreshTable(hallList);
- ?? ??? ??? ?}
- ?? ??? ?});
- ?? ??? ?btn_del.addActionListener(new ActionListener() {
- ?
- ?? ??? ??? ?@Override
- ?? ??? ??? ?public void actionPerformed(ActionEvent e) {
- ?? ??? ??? ??? ?int row = table.getSelectedRow();
- ?? ??? ??? ??? ?int id = (Integer) table.getValueAt(row, 0);
- ?? ??? ??? ??? ?int flag = JOptionPane.showConfirmDialog(operHallView.this, "确认是否删除此场厅?", "确认信息",
- ?? ??? ??? ??? ??? ??? ?JOptionPane.YES_NO_OPTION);
- ?? ??? ??? ??? ?if (flag == JOptionPane.YES_OPTION) {
- ?? ??? ??? ??? ??? ?boolean res = hallbiz.delHall(id);
- ?? ??? ??? ??? ??? ?if (res) {
- ?? ??? ??? ??? ??? ??? ?JOptionPane.showMessageDialog(operHallView.this, "删除成功!");
- ?? ??? ??? ??? ??? ??? ?// 更新数据
- ?? ??? ??? ??? ??? ??? ?List<Session> sessionList = new ArrayList<Session>();
- ?? ??? ??? ??? ??? ??? ?sessionList = sessionbiz.queryAllSession();
- ?? ??? ??? ??? ??? ??? ?// 删除某场厅后,对应的场次也进行删除
- ?? ??? ??? ??? ??? ??? ?int sid = 0;
- ?? ??? ??? ??? ??? ??? ?for (int i = 0; i < sessionList.size(); i++) {
- ?? ??? ??? ??? ??? ??? ??? ?if (id == sessionList.get(i).getHall_id()) {
- ?? ??? ??? ??? ??? ??? ??? ??? ?sid = sessionList.get(i).getSession_id();
- ?? ??? ??? ??? ??? ??? ??? ??? ?sessionbiz.delSession(sid);
- ?? ??? ??? ??? ??? ??? ??? ?}
- ?? ??? ??? ??? ??? ??? ?}
- ?? ??? ??? ??? ??? ??? ?hallList = hallbiz.queryAllHall();
- ?? ??? ??? ??? ??? ??? ?refreshTable(hallList);// 更新显示数据
- ?? ??? ??? ??? ??? ?} else {
- ?? ??? ??? ??? ??? ??? ?JOptionPane.showMessageDialog(operHallView.this, "删除失败!");
- ?? ??? ??? ??? ??? ?}
- ?? ??? ??? ??? ?}
- ?? ??? ??? ?}
- ?? ??? ?});
- ?? ??? ?btn_back.addActionListener(new ActionListener() {
- ?
- ?? ??? ??? ?@Override
- ?? ??? ??? ?public void actionPerformed(ActionEvent e) {
- ?? ??? ??? ??? ?operHallView.this.dispose();
- ?? ??? ??? ?}
- ?? ??? ?});
- ?? ?}
- ?
- ?? ?private class HallInfoTableModel implements TableModel {
- ?? ??? ?public List<Hall> hallList = null;
- ?
- ?? ??? ?public HallInfoTableModel(List<Hall> hallList) {
- ?? ??? ??? ?this.hallList = hallList;
- ?? ??? ?}
- ?
- ?? ??? ?// JTable显示的行数
- ?? ??? ?@Override
- ?? ??? ?public int getRowCount() {
- ?? ??? ??? ?return hallList.size();
- ?? ??? ?}
- ?
- ?? ??? ?// JTable显示的列数
- ?? ??? ?@Override
- ?? ??? ?public int getColumnCount() {
- ?? ??? ??? ?return 4;
- ?? ??? ?}
- ?
- ?? ??? ?// JTable显示各行的名称
- ?? ??? ?@Override
- ?? ??? ?public String getColumnName(int columnIndex) {
- ?? ??? ??? ?if (columnIndex == 0) {
- ?? ??? ??? ??? ?return "场厅ID";
- ?? ??? ??? ?} else if (columnIndex == 1) {
- ?? ??? ??? ??? ?return "场厅名称";
- ?? ??? ??? ?} else if (columnIndex == 2) {
- ?? ??? ??? ??? ?return "所属影院";
- ?? ??? ??? ?} else if (columnIndex == 3) {
- ?? ??? ??? ??? ?return "场厅容量";
- ?? ??? ??? ?} else {
- ?? ??? ??? ??? ?return "出错";
- ?? ??? ??? ?}
- ?? ??? ?}
- ?
- ?? ??? ?// JTable列的数据类型
- ?? ??? ?@Override
- ?? ??? ?public Class<?> getColumnClass(int columnIndex) {
- ?? ??? ??? ?return String.class;
- ?? ??? ?}
- ?
- ?? ??? ?// 单元格是否可编辑
- ?? ??? ?@Override
- ?? ??? ?public boolean isCellEditable(int rowIndex, int columnIndex) {
- ?? ??? ??? ?return false;
- ?? ??? ?}
- ?
- ?? ??? ?// 每行单元格显示的数据
- ?? ??? ?@Override
- ?? ??? ?public Object getValueAt(int rowIndex, int columnIndex) {
- ?? ??? ??? ?Hall hall = hallList.get(rowIndex);
- ?? ??? ??? ?Cinema cinema = null;
- ?? ??? ??? ?if (columnIndex == 0) {
- ?? ??? ??? ??? ?return hall.getHall_id();
- ?? ??? ??? ?} else if (columnIndex == 1) {
- ?? ??? ??? ??? ?return hall.getHname();
- ?? ??? ??? ?} else if (columnIndex == 2) {
- ?? ??? ??? ??? ?List<Cinema> cinemaList = cinemabiz.queryAllCinema();
- ?? ??? ??? ??? ?for (int i = 0; i < cinemaList.size(); i++) {
- ?? ??? ??? ??? ??? ?if (hall.getCinema_id() == cinemaList.get(i).getCinema_id()) {
- ?? ??? ??? ??? ??? ??? ?cinema = cinemaList.get(i);
- ?? ??? ??? ??? ??? ??? ?break;
- ?? ??? ??? ??? ??? ?}
- ?? ??? ??? ??? ?}
- ?? ??? ??? ??? ?return cinema.getCname();
- ?? ??? ??? ??? ?// return hall.getCid();
- ?? ??? ??? ?} else if (columnIndex == 3) {
- ?? ??? ??? ??? ?return hall.getCapacity();
- ?? ??? ??? ?} else {
- ?? ??? ??? ??? ?return "出错";
- ?? ??? ??? ?}
- ?? ??? ?}
- ?
- ?? ??? ?@Override
- ?? ??? ?public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
- ?? ??? ??? ?// TODO Auto-generated method stub
- ?
- ?? ??? ?}
- ?
- ?? ??? ?@Override
- ?? ??? ?public void addTableModelListener(TableModelListener l) {
- ?? ??? ??? ?// TODO Auto-generated method stub
- ?
- ?? ??? ?}
- ?
- ?? ??? ?@Override
- ?? ??? ?public void removeTableModelListener(TableModelListener l) {
- ?? ??? ??? ?// TODO Auto-generated method stub
- ?
- ?? ??? ?}
- ?? ?}
- ?
- ?? ?private void refreshTable(List<Hall> hallList) {
- ?? ??? ?infoTableModel = new HallInfoTableModel(hallList);
- ?? ??? ?table.setModel(infoTableModel);
- ?? ??? ?table.setRowHeight(20);
- ?? ?}
- }
到此这篇关于Eclipse+Java+Swing+Mysql实现电影购票系统(详细代码)的文章就介绍到这了,更多相关Eclipse+Java+Swing+Mysql实现电影购票系统内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!