基于java的Swing模拟实现十字路口交通灯管理系统(java+swing+jdbc+mysql)

运行环境

Java≥8、MySQL≥5.7

开发工具

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

适用

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

功能说明

001524091905

021524091905

591524081905

基于java的Swing模拟实现十字路口交通灯管理系统(java+swing+jdbc+mysql)

启动类:GUI.MainGUI

使用:
输入红灯、绿灯时长(红灯>绿灯)
输入东、南、西、北方向的车辆数(1~10)

开发语言:Java
开发技术:MVC JDBC XML Socket JavaGUI
集成开发环境:Eclipse
运行环境:Windows/Linux

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
	// 北方后来车辆
public void addN_later(int i) {
for (int j = 0; j < i; j++) {
x = 335;
y = -10 - 14 * 10 * j;
jb11[j].setBounds(x, y, 10, 10);
jb11[j].setVisible(true);
p4.add(jb11[j]);
}
}

// 南方后来车辆
public void addS_later(int i) {
for (int j = 0; j < i; j++) {
x = 355;
y = 400 + 14 * 10 * j;
jb22[j].setBounds(x, y, 10, 10);
jb22[j].setVisible(true);
p4.add(jb22[j]);
}
}

}

/*
* 开始按钮的事件类
* */



public class MystartActionListener implements ActionListener {

private int t1, t2, t3, t4;

public void actionPerformed(ActionEvent e) {
if (MainGUI.jt[0].getText() == null
|| MainGUI.jt[0].getText().trim().equals("")) {
JOptionPane.showMessageDialog(MainGUI.f, "您没有设置红灯时间!请输入红灯时间!");
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
	}
// 西边后来车辆之间行走规则
for (int i = 0; i < jb44.length; i++) {
int t;
if (i == 0) {
if (jt[5].getText() == null
|| jt[5].getText().trim().equals("")) {
t = 0;
runW(jb44[0]);
} else {
t = Integer.parseInt(jt[5].getText()) / 5;
if (t <= 0) {
runW(jb44[0]);
} else {
if (jb4[t - 1].getX() - jb44[0].getX() >= 25) {
runW(jb44[0]);
} else {
x = jb44[0].getX();
y = jb44[0].getY();
jb44[0].setLocation(x, y);
}
}
}
} else {
if ((jb44[i - 1].getX() - jb44[i].getX()) >= 25) {
runW(jb44[i]);
} else {
x = jb44[i].getX();
y = jb44[i].getY();
jb44[i].setLocation(x, y);
}
}
}

}

// 北边单个车辆行走规则
public void runN(JButton jb) {

if (jb.getY() > 350 || jb.getY() < 0) {
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
jb[0] = new JButton();
jb[0].setBounds(400, 70, 20, 10);
p4.add(jb[0]);

jb[1] = new JButton();
jb[1].setBounds(400, 80, 20, 10);
p4.add(jb[1]);

jb[2] = new JButton();
jb[2].setBounds(400, 90, 20, 10);
p4.add(jb[2]);

// 第二组红绿灯
jb[3] = new JButton();
jb[3].setBounds(250, 100, 10, 20);
p4.add(jb[3]);

jb[4] = new JButton();
jb[4].setBounds(260, 100, 10, 20);
p4.add(jb[4]);

jb[5] = new JButton();
jb[5].setBounds(270, 100, 10, 20);
p4.add(jb[5]);

// 第三组红绿灯
jb[6] = new JButton();
jb[6].setBounds(420, 220, 10, 20);
// jb[6].setBackground(Color.green);
p4.add(jb[6]);
jb[7] = new JButton();
jb[7].setBounds(430, 220, 10, 20);
p4.add(jb[7]);
jb[8] = new JButton();
jb[8].setBounds(440, 220, 10, 20);
p4.add(jb[8]);

// 第四组红绿灯
jb[9] = new JButton();
jb[9].setBounds(280, 240, 20, 10);
p4.add(jb[9]);

jb[10] = new JButton();
jb[10].setBounds(280, 250, 20, 10);
p4.add(jb[10]);

jb[11] = new JButton();
jb[11].setBounds(280, 260, 20, 10);
p4.add(jb[11]);

// 方向标记
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
	for (Object o : list2) {
BIDR bidr = (BIDR) o;
jt.append(bidr.getDate());
jt.append("\t");
jt.append(new Integer(bidr.getRed()).toString());
jt.append("\t");
jt.append(new Integer(bidr.getGreen()).toString());
jt.append("\t");
jt.append(new Integer(bidr.getYellow()).toString());
jt.append("\t");
jt.append(new Integer(bidr.getSouth()).toString());
jt.append("\n");
}
}

if (list3 == null) {
JOptionPane.showMessageDialog(jf, "对不起!西边路口没有您要查找的记录");
} else { //如果不为空,则把所有查找到的记录显示在文本框中
jt.append("\n");
jt.append("西边路口:");
jt.append("\n");
jt.append("date" + "\t" + "red" + "\t" + "green" + "\t" + "yellow"
+ "\t" + "car" );
jt.append("\n");
//以下是循环遍历集合,并将内容显示在文本框中
for (Object o : list3) {
BIDR bidr = (BIDR) o;
jt.append(bidr.getDate());
jt.append("\t");
jt.append(new Integer(bidr.getRed()).toString());
jt.append("\t");
jt.append(new Integer(bidr.getGreen()).toString());
jt.append("\t");
jt.append(new Integer(bidr.getYellow()).toString());
jt.append("\t");
jt.append(new Integer(bidr.getWest()).toString());
jt.append("\n");
}
}

if (list4== null) {
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


/*
* 显示窗口,把查询到的记录显示在该窗口
* */
public class DatebaseGUI extends JFrame {

/**
*
*/
private static final long serialVersionUID = 704708180839394414L;

private JTextArea jt= new JTextArea();//用于显示从数据库查询到的信息

private JScrollPane jsp=new JScrollPane(jt);//给文本框添加滚动条

private JPanel jp=new JPanel();//装载文本框的容器

public DatebaseGUI(JFrame jf, String date1, String date2)
throws HeadlessException {
jp.setLayout(null);

jsp.setBounds(50, 50, 500, 400);
jp.add(jsp);//将滚动条添加到文本框中


Connection conn = JDBCConnectionFactory.getConnection();
//以下是和数据库建立连接,并从数据库中查找所要的记录,并存放到集合list中
SelectDB sdb = new SelectDB(conn);
List<BIDR> list1 = sdb.select_east(date1, date2);
List<BIDR> list2=sdb.select_south(date1, date2);
List<BIDR> list3=sdb.select_west(date1, date2);
List<BIDR> list4=sdb.select_north(date1, date2);
//关闭连接
try {
if (conn != null)
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
jp[3].setBackground(Color.GRAY);
jp[3].setVisible(true);
p4.add(jp[3]);

// 第一组红绿灯
jb[0] = new JButton();
jb[0].setBounds(400, 70, 20, 10);
p4.add(jb[0]);

jb[1] = new JButton();
jb[1].setBounds(400, 80, 20, 10);
p4.add(jb[1]);

jb[2] = new JButton();
jb[2].setBounds(400, 90, 20, 10);
p4.add(jb[2]);

// 第二组红绿灯
jb[3] = new JButton();
jb[3].setBounds(250, 100, 10, 20);
p4.add(jb[3]);

jb[4] = new JButton();
jb[4].setBounds(260, 100, 10, 20);
p4.add(jb[4]);

jb[5] = new JButton();
jb[5].setBounds(270, 100, 10, 20);
p4.add(jb[5]);

// 第三组红绿灯
jb[6] = new JButton();
jb[6].setBounds(420, 220, 10, 20);
// jb[6].setBackground(Color.green);
p4.add(jb[6]);
jb[7] = new JButton();
jb[7].setBounds(430, 220, 10, 20);
p4.add(jb[7]);
jb[8] = new JButton();
jb[8].setBounds(440, 220, 10, 20);
p4.add(jb[8]);

// 第四组红绿灯
jb[9] = new JButton();
jb[9].setBounds(280, 240, 20, 10);
p4.add(jb[9]);


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