Bootstrap

最全Eclipse+Java+Swing+Mysql实现电影购票系统【建议收藏】,java面试题最新

最后

金三银四马上就到了,希望大家能好好学习一下这些技术点

学习视频:

大厂面试真题:

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

需要这份系统化的资料的朋友,可以点击这里获取

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

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 sessionList = new ArrayList();

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

public HallInfoTableModel(List 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) {

分享

1、算法大厂——字节跳动面试题

2、2000页互联网Java面试题大全

3、高阶必备,算法学习

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

需要这份系统化的资料的朋友,可以点击这里获取

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 sessionList = new ArrayList();

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

public HallInfoTableModel(List 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) {

分享

1、算法大厂——字节跳动面试题

[外链图片转存中…(img-x83cJ5PR-1715553857198)]

2、2000页互联网Java面试题大全

[外链图片转存中…(img-VkfPpfbF-1715553857199)]

3、高阶必备,算法学习

[外链图片转存中…(img-OCUahVnV-1715553857199)]

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

需要这份系统化的资料的朋友,可以点击这里获取

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;