Eclipse+Java+Swing+Mysql实现电影购票系统【建议收藏】

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 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 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 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 cinemaList = null;

private CinemaInfoTableModel infoTableModel = null;

// private List hallList = null;

// private List 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();

table = new JTable();

refreshTable(cinemaList);

cb_query = new JComboBox(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 cinemaList = null;

public CinemaInfoTableModel(List 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 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 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();

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);

最后

现在其实从大厂招聘需求可见,在招聘要求上有高并发经验优先,包括很多朋友之前都是做传统行业或者外包项目,一直在小公司,技术搞的比较简单,没有怎么搞过分布式系统,但是现在互联网公司一般都是做分布式系统。

所以说,如果你想进大厂,想脱离传统行业,这些技术知识都是你必备的,下面自己手打了一份Java并发体系思维导图,希望对你有所帮助。

private HallService hallbiz = null;

private CinemaService cinemabiz = null;

private SessionServiceImpl sessionbiz = null;

private List 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();

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);

最后

现在其实从大厂招聘需求可见,在招聘要求上有高并发经验优先,包括很多朋友之前都是做传统行业或者外包项目,一直在小公司,技术搞的比较简单,没有怎么搞过分布式系统,但是现在互联网公司一般都是做分布式系统。

所以说,如果你想进大厂,想脱离传统行业,这些技术知识都是你必备的,下面自己手打了一份Java并发体系思维导图,希望对你有所帮助。

[外链图片转存中…(img-ZYT96CjI-1714288225773)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值