基于java的Swing+Java+MySQL电影院购票电影票管理系统(管理员、用户)(java+swing+mysql+gui)

运行环境

Java≥8、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

后台管理员:管理电影、影院、场次等

前台用户:查看电影、购票、评论等

eclipse/myeclipse

390123082502

idea

380123082502

后台管理员:

180123082502

190123082502

200123082502

210123082502

230123082502

240123082502

250123082502

260123082502

270123082502

280123082502

290123082502

前台用户:

300123082502

310123082502

320123082502

340123082502

350123082502

360123082502

370123082502

技术框架

Java Swing MySQL

基于java的Swing+Java+MySQL电影院购票电影票管理系统(管理员、用户)(java+swing+mysql+gui)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
movieNameText.setColumns(10);

JLabel lblNewLabel_2 = new JLabel("语言:");
lblNewLabel_2.setFont(new Font("楷体", Font.PLAIN, 20));

movielangText = new JTextField();
movielangText.setFont(new Font("楷体", Font.PLAIN, 20));
movielangText.setColumns(10);

JLabel lblNewLabel_3 = new JLabel("地区:");
lblNewLabel_3.setFont(new Font("楷体", Font.PLAIN, 20));

mlocaText = new JTextField();
mlocaText.setFont(new Font("楷体", Font.PLAIN, 20));
mlocaText.setColumns(10);

JLabel lblNewLabel_4 = new JLabel("类别:");
lblNewLabel_4.setFont(new Font("楷体", Font.PLAIN, 20));

movieTypeText = new JTextField();
movieTypeText.setFont(new Font("楷体", Font.PLAIN, 20));
movieTypeText.setColumns(10);

JLabel lblNewLabel_5 = new JLabel("海报地址:");
lblNewLabel_5.setFont(new Font("楷体", Font.PLAIN, 20));

moviepicadreText = new JTextField();
moviepicadreText.setFont(new Font("楷体", Font.PLAIN, 20));
moviepicadreText.setColumns(10);

txtrDetailtest = new JTextArea();
txtrDetailtest.setText("detailTest");
txtrDetailtest.setFont(new Font("楷体", Font.PLAIN, 18));

JButton btnNewButton = new JButton("修改");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
updatemovieActionPerformed(e);
}
});
btnNewButton.setFont(new Font("楷体", Font.PLAIN, 20));

JButton btnNewButton_1 = new JButton("删除");
btnNewButton_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
delActionPerformed(e);
}
});
btnNewButton_1.setFont(new Font("楷体", Font.PLAIN, 20));

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
		moviecard1_btn.setIcon(new ImageIcon(movielist.get(row1).getmPicaddress()));
moviename.setText("片名:" +movielist.get(row1).getmName()+" 评分:"+movielist.get(row1).getmGrade());
movielocality_language.setText("地区:" + movielist.get(row1).getMlocality() + " 语言:" + movielist.get(row1).getMlanguage());
movietype_grade.setText("类型:" + (movielist.get(row1).getmType()) + " " + "时长 :" + movielist.get(row1).getmDuration() + "分钟");
}
}

private void fillTable(List<Movie> movielist2) {
// TODO Auto-generated method stub
DefaultTableModel dtm=(DefaultTableModel) movietb.getModel();
dtm.setRowCount(0); // 设置成0行
int movieRow= movielist2.size();

for(int i=0;i<movieRow;i++) {
Vector v=new Vector();
v.add(movielist2.get(i).getmId());
v.add(movielist2.get(i).getmName());
v.add(movielist2.get(i).getMlanguage());
v.add(movielist2.get(i).getMlocality());
v.add(movielist2.get(i).getmDuration());
v.add(movielist2.get(i).getmType());
v.add(movielist2.get(i).getmGrade());
dtm.addRow(v);

}


DefaultTableCellRenderer r = new DefaultTableCellRenderer();
r.setHorizontalAlignment(JLabel.CENTER);
}

protected void ticktablemousePressed(MouseEvent me) {
// TODO Auto-generated method stub
Session csession;

row = ticktb.getSelectedRow();
if(row!=-1) {
csession=sessionservice.querySessionById(ticketlist.get(row).getsId());
ccomment=new Comment(user.getUid(),csession.getmId());
ccomment=commentservice.queryComment(ccomment);
if(ccomment!=null) {
jcommentcontent.setText(ccomment.getComment());
jcommentcontent.setLineWrap(true);
jcommentcontent.setEditable(false);
jIscomment.setText("您已评论");
}else {
jcommentcontent.setEditable(true);
jIscomment.setText("您还未评论");
jcommentcontent.setText("");
}
}
}

@Override
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
	this.ue = ue;
p.setLayout(null);
sessionlist = seser.querySessionBymId(mo.getmId());
int sessionRow = sessionlist.size();
Hall h = new Hall();
Cinema ci = new Cinema();
/* String[][] rinfo = new String[sessionRow][8];
for (int i = 0; i < sessionRow; i++) {
h = hall.queryHallById(sessionlist.get(i).gethId());
ci = cinema.queryCinemaById(sessionlist.get(i).getcId());
rinfo[i][0] = String.valueOf(sessionlist.get(i).getsId());
rinfo[i][1] = h.gethName();
rinfo[i][2] = ci.getCname();
rinfo[i][3] = ci.getCaddress();
rinfo[i][4] = mo.getmName();
rinfo[i][5] = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(sessionlist.get(i).getBeginTime());
rinfo[i][6] = String.valueOf(sessionlist.get(i).getPrice());
rinfo[i][7] = String.valueOf(sessionlist.get(i).getRemain());
}
// 加上影院地址
String[] tbheadnames = { "场次编号", "场厅名称", "影院名称", "影院地址", "电影名称", "开始时间", "价格", "剩余座位数" };*/
tb = new JTable() {
public boolean isCellEditable(int row, int column) {
return false;
}

};
tb.setModel(new DefaultTableModel(
new Object[][] {
},
new String[] {
"场次编号", "场厅名称", "影院名称","影院地址","电影名称","开始时间","价格","剩余座位数"
}
) {
boolean[] columnEditables = new boolean[] {
false, false, false, false,false,false,false,false
};
public boolean isCellEditable(int row, int column) {
return columnEditables[column];
}
});
DefaultTableCellRenderer r = new DefaultTableCellRenderer();
fillsessiontable(sessionlist);
r.setHorizontalAlignment(JLabel.CENTER);
tb.setDefaultRenderer(Object.class, r);
tb.setRowHeight(90);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

con.setLayout(null);
jf.setSize(1000, 618);
jf.setLocation((sc.width - 1000) / 2, (sc.height - 618) / 2);
jf.setResizable(false);// 窗口大小不可变
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
con.setVisible(true);

JLabel maxlabel = new JLabel(loginbg);

title.setBounds(215, 95, 170, 30);
title.setFont(font);
title.setForeground(Color.black);

name.setBounds(160, 163, 95, 30);
name.setFont(font1);
name.setForeground(Color.red);

pass.setBounds(160, 220, 95, 30);// 密码的位置大小
pass.setForeground(Color.red);
pass.setFont(font1);

pass2.setBounds(160, 280, 95, 30);
pass2.setForeground(Color.red);
pass2.setFont(font1);

textName.setBounds(245, 163, 140, 25);
textName.setFont(font1);
textName.setBorder(null);// 边框

textPs.setBounds(245, 223, 140, 25);
textPs.setFont(font1);
textPs.setBorder(null);
textPs.setEchoChar('*');// 可以将密码显示为* ;默认为· 但默认又对其设置了字体时会乱码

textPs2.setBounds(245, 283, 140, 25);
textPs2.setFont(font1);
textPs2.setBorder(null);
textPs2.setEchoChar('*');

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
protected void cinematablemousePressed(MouseEvent me) {
// TODO Auto-generated method stub
int cinemarow=-1;
cinemarow=cinematable.getSelectedRow();
if(cinemarow!=-1) {
jcIdText.setText(String.valueOf(cinemalist.get(cinemarow).getCid()));
halllist=hallservice.queryAllHallcId(cinemalist.get(cinemarow).getCid());
fillhalltableTable(halllist);
}
}

protected void sessiontablemousePressed(MouseEvent me) {
// TODO Auto-generated method stub
int sessionrow=-1;
sessionrow=sessiontable.getSelectedRow();
if(sessionrow!=-1) {
jtimeText.setText(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(sessionlist.get(sessionrow).getBeginTime()));
jpriceText.setText(String.valueOf(sessionlist.get(sessionrow).getPrice()));
jmIdText.setText(String.valueOf(sessionlist.get(sessionrow).getmId()));
}
}

protected void halltablemousePressed(MouseEvent me) {
// TODO Auto-generated method stub
int halrow=-1;
halrow=halltable.getSelectedRow();
if(halrow!=-1) {
jhallText.setText(String.valueOf(halllist.get(halrow).gethId()));
jremainText.setText(String.valueOf(halllist.get(halrow).getCapacity()));
sessionlist=sessionservice.querySessionByHid(halllist.get(halrow).gethId());
fillsessiontable(sessionlist);
}
}
private void fillsessiontable(List<Session> sessionlist2) {
DefaultTableModel dtm=(DefaultTableModel) sessiontable.getModel();
dtm.setRowCount(0); // 设置成0行
int sessionRow=sessionlist2.size();
for(int i=0;i<sessionRow;i++) {

Vector v=new Vector();
v.add(sessionlist2.get(i).getsId());
v.add(sessionlist2.get(i).gethId());
v.add(sessionlist2.get(i).getcId());
v.add(sessionlist2.get(i).getmId());
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
	Hall h = new Hall();
Cinema ci = new Cinema();
/* String[][] rinfo = new String[sessionRow][8];
for (int i = 0; i < sessionRow; i++) {
h = hall.queryHallById(sessionlist.get(i).gethId());
ci = cinema.queryCinemaById(sessionlist.get(i).getcId());
rinfo[i][0] = String.valueOf(sessionlist.get(i).getsId());
rinfo[i][1] = h.gethName();
rinfo[i][2] = ci.getCname();
rinfo[i][3] = ci.getCaddress();
rinfo[i][4] = mo.getmName();
rinfo[i][5] = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(sessionlist.get(i).getBeginTime());
rinfo[i][6] = String.valueOf(sessionlist.get(i).getPrice());
rinfo[i][7] = String.valueOf(sessionlist.get(i).getRemain());
}
// 加上影院地址
String[] tbheadnames = { "场次编号", "场厅名称", "影院名称", "影院地址", "电影名称", "开始时间", "价格", "剩余座位数" };*/
tb = new JTable() {
public boolean isCellEditable(int row, int column) {
return false;
}

};
tb.setModel(new DefaultTableModel(
new Object[][] {
},
new String[] {
"场次编号", "场厅名称", "影院名称","影院地址","电影名称","开始时间","价格","剩余座位数"
}
) {
boolean[] columnEditables = new boolean[] {
false, false, false, false,false,false,false,false
};
public boolean isCellEditable(int row, int column) {
return columnEditables[column];
}
});
DefaultTableCellRenderer r = new DefaultTableCellRenderer();
fillsessiontable(sessionlist);
r.setHorizontalAlignment(JLabel.CENTER);
tb.setDefaultRenderer(Object.class, r);
tb.setRowHeight(90);
tb.setFont(font);
/* tb.setEnabled(true); */
tb.getTableHeader().setFont(new Font("楷体", 1, 20));
tb.getTableHeader().setBackground(Color.orange);
tb.getTableHeader().setReorderingAllowed(false); // 不可交换顺序
tb.getTableHeader().setResizingAllowed(false); // 不可拉动表格
tb.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent me) {
tablemousePressed(me);


项目链接:
https://javayms.github.io?id=391622150602101ad
https://javayms.pages.dev?id=391622150602101ad