Java编写的公交查询系统 功能非常齐全 完整源码

2023-11-16

今天为大家分享一个java语言编写的教室管理系统,目前系统功能已经很全面,后续会进一步完善。整个系统界面漂亮,有完整得源码,希望大家可以喜欢。喜欢的帮忙点赞和关注。一起编程、一起进步

开发环境

开发语言为Java,开发环境Eclipse或者IDEA都可以,数据为MySQL。运行主程序,或者执行打开JAR文件即可以运行本程序。

系统框架

利用JDK自带的SWING框架开发。纯窗体模式,直接运行Main文件即可以。

系统主要功能

本项目是一个课程设计,主要实现了要给公交查询系统。实现的主要功能包括:按线路查询、按经过站的站查询,按起始站、终止站查询。项目涉及到文件操作、事件处理、数据结构和算法等众多知识点,项目源码完整,下载后可以直接使用。欢迎大家下载。

开发背景

本公交查询系统目标是方便市民进行公交信息查询,并且要做到信息不滞后,其主要思想是做到系统管理的人性化,数据处理的可靠性,可维护性,以及程序的健壮性。

运行方法

下载源码后,导入到Eclipse或者IEDA后,运行MAIN.JAVA,即可以正确运行系统

主要功能

  1. 查询功能:系统需要提供几种不同方式的查询手段,以实现灵活方便地管理整个系统。公交查询系统有按线路查询、按经过站的站查询,按起始站-终止站查询3种查询方式

2、数据的更新修改:更新:系统允许管理员级别的用户对数据进行更新、修改并且存盘操作;

运行效果

关键代码

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

@SuppressWarnings("serial")
public class GUI extends JFrame {
    private JButton btnQuery; // 查询
    private JCheckBox ckBox; // 模糊查询选择
    private JTextField tfUrbanLine; // 线路名
    private JTextField tfBusStation; // 站台名
    private JTextField tfSourceStation; // 源站台
    private JTextField tfDestStation; // 目的站台
    private JTextArea taResult; // 查询结果
    private JRadioButton rbStation; // 站站查询
    private JRadioButton rbUrbanLine; // 线路查询
    private JRadioButton rbStationInfo; //

    public GUI() {
    initComponents();
    initLayout();
    loadWindow();
    }

    /**
     * 初始化组件
     */
    private void initComponents() {
    setTitle("南京公交线路查询系统");// 设置标题
    setSize(825, 560); // 窗口大小
    setLocation(200, 100); // 窗口初始位置(200,300)
    setResizable(false);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    btnQuery = new JButton("查询");
    ckBox = new JCheckBox("模糊查询");
    tfUrbanLine = new JTextField(10);
    tfBusStation = new JTextField(20);
    tfSourceStation = new JTextField(20);
    tfDestStation = new JTextField(20);
    taResult = new JTextArea(70, 50);
    rbStation = new JRadioButton("站站查询");
    rbUrbanLine = new JRadioButton("线路查询");
    rbStationInfo = new JRadioButton("站台信息查询");

    taResult.setLineWrap(true);// 设置换行
    }

    /**
     * 初始化窗口布局
     */
    private void initLayout() {
    JPanel rightPanel = new JPanel(); // 右部面板
    JPanel centPanel = new JPanel();// 中间面板

    rightPanel.setLayout(new GridLayout(15, 1, 5, 5));
    ButtonGroup g = new ButtonGroup();
    g.add(rbStation);
    g.add(rbStationInfo);
    g.add(rbUrbanLine);

    rightPanel.add(rbStation);
    rightPanel.add(rbStationInfo);// 加入单选按钮
    rightPanel.add(rbUrbanLine);

    rightPanel.add(new JLabel("请输入起始站点名:"));
    rightPanel.add(tfSourceStation);
    rightPanel.add(new JLabel("请输入终点站点名:"));
    rightPanel.add(tfDestStation);
    rightPanel.add(new JLabel("请输入站台名:"));
    rightPanel.add(tfBusStation);
    rightPanel.add(new JLabel("请输入公交线路名:"));
    rightPanel.add(tfUrbanLine);

    rightPanel.add(btnQuery);
    rightPanel.add(ckBox);

    centPanel.add(taResult);// 查询结果放入中间面板

    JScrollPane sp = new JScrollPane(centPanel,
        JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
        JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
    rightPanel.setBorder(BorderFactory.createTitledBorder("信息区"));// 加入边框
    sp.setBorder(BorderFactory.createTitledBorder("查询结果"));

    getContentPane().add(rightPanel, BorderLayout.EAST);
    getContentPane().add(sp, BorderLayout.CENTER);

    btnQuery.addActionListener(new QueryCommand());// 加入监听
    rbStation.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
        tfSourceStation.setEnabled(true);
        tfDestStation.setEnabled(true);
        tfUrbanLine.setEnabled(false);
        tfBusStation.setEnabled(false);
        tfSourceStation.setText("");
        tfDestStation.setText("");
        tfSourceStation.grabFocus();
        }
    });
    rbStationInfo.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
        tfSourceStation.setEnabled(false);
        tfDestStation.setEnabled(false);
        tfUrbanLine.setEnabled(false);
        tfBusStation.setEnabled(true);
        tfBusStation.setText("");
        tfBusStation.grabFocus();
        }
    });
    rbUrbanLine.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
        tfSourceStation.setEnabled(false);
        tfDestStation.setEnabled(false);
        tfUrbanLine.setEnabled(true);
        tfBusStation.setEnabled(false);
        tfUrbanLine.setText("");
        tfUrbanLine.grabFocus();// 获取焦点
        }
    });
    }

    /**
     * 载入窗口
     */
    private void loadWindow() {
    setVisible(true); // 显示窗口
    tfSourceStation.grabFocus();
    taResult.setEditable(false);
    rbStation.setSelected(true); // 选中站站查询
    tfBusStation.setEnabled(false);
    tfUrbanLine.setEnabled(false);
    Query.initQuery();// 完成一系列初始化工作
    }

    // 查询操作
    private class QueryCommand implements ActionListener {
    public void actionPerformed(ActionEvent e) {
        String msg1 = null;
        String msg2 = null;
        String result = null;
        if (rbStation.isSelected()) { // 站站查询
        msg1 = tfSourceStation.getText().trim();
        if ("".equals(msg1)) {
            JOptionPane
                .showMessageDialog(GUI.this, "起始站台不能为空!");
            tfSourceStation.grabFocus();
            return;
        }
        msg2 = tfDestStation.getText().trim();
        if ("".equals(msg2)) {
            JOptionPane
                .showMessageDialog(GUI.this, "终点站台不能为空!");
            tfDestStation.grabFocus();
            return;
        }
        if (ckBox.isSelected()) { // 选中了模糊查询
            result = Query.getPathInfo(msg1, msg2, true);
            if (result == null)
            JOptionPane.showMessageDialog(GUI.this,
                "对不起,没有查询到相关乘车方案信息!");
            else
            taResult.setText(result);
        } else {
            result = Query.getPathInfo(msg1, msg2, false);
            if (result == null)
            JOptionPane.showMessageDialog(GUI.this,
                "对不起,没有查询到相关乘车方案信息!");
            else
            taResult.setText(result);
        }
        } else if (rbStationInfo.isSelected()) {// 查询站台信息
        msg1 = tfBusStation.getText().trim();
        if ("".equals(msg1)) {
            JOptionPane.showMessageDialog(GUI.this, "站台名不能为空!");
            tfBusStation.grabFocus();
            return;
        }
        if (ckBox.isSelected()) { // 选中了模糊查询
            result = Query.getStationInfo(msg1, true);
        } else {
            result = Query.getStationInfo(msg1, false);
        }
        if (result == null)
            JOptionPane.showMessageDialog(GUI.this,
                "对不起,没有查询到该站台的信息!");
        else
            taResult.setText(result);

        } else if (rbUrbanLine.isSelected()) {// 查询线路信息
        msg1 = tfUrbanLine.getText().trim();
        if ("".equals(msg1)) {
            JOptionPane.showMessageDialog(GUI.this,
                "公交线路名不能为空!");
            tfUrbanLine.grabFocus();
            return;
        }
        if (ckBox.isSelected()) { // 选中了模糊查询
            result = Query.getUrbanLineInfo(msg1, true);
        } else {
            result = Query.getUrbanLineInfo(msg1, false);
        }
        if (result == null)
            JOptionPane.showMessageDialog(GUI.this,
                "对不起,没有查询到该公交线路的信息!");
        else
            taResult.setText(result);
        }
    }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java编写的公交查询系统 功能非常齐全 完整源码 的相关文章

随机推荐

  • 编程练习题——用FileReader读取文件内容

    题目目标 main 方法的第一个参数是文件名 指定文件的每个行包含下列各式 名称 月 日 年 其中 姓名 是 String 可以包含空格分隔的数个字词 月 为 int 日 为 int 年 为 int 数据由空格分隔 使用文件数据填写 PEO
  • 02-百度翻译逆向

    1 分析 发现每次请求只有sign不一样 其他的都一样 2 在这个里面找sing 3 可以看到是在b函数中做的手脚 点进去b里面看看 4 直接把这个段复制下 在python中执行js代码 因为下面要使用e n函数使用 e n函数也复制 5
  • 数据库操作--增删改查

    一 数据操作语句 DDL 数据定义语言 定义数据的结构 列 CREATE DROP ALTER TRUNCATE DML 数据操作语言 操作数据的记录行 INSERT DELETE UPDATE DQL 数据查询语言 对数据没有影响 SEL
  • error C2039: “tag”: 不是“boost::Q_FOREACH”的成员 (XXX.cpp) 问题

    记一个编译问题 错误 252 error C2039 tag 不是 boost Q FOREACH 的成员 XXX cpp VS上编译项目时出现一下错误 VS上报错的截图 导致的原因 我在头文件和 cpp文件上包含了同一个
  • linux下前端vue+后端vue+mysql+redis+springboot+nginx的docker部署记录(nginx下多个vue前端)

    1 服务器 推荐购买腾讯云的学生优惠25岁以下免验证 我购买的是轻量应用服务器 5M宽度每月1000G不香吗 系统是CentOS 7 6 购买好服务器并通过Xshell或其他软件连接好 就是前期的准备了 当然除了项目 自备 2 安装dock
  • 麻雀键值数据库 1.0.0版本

    2023年5月26日 周五下午 这个版本主要实现了设置键值对和读取键值对 下个版本主要实现把内存中的数据写入到磁盘中 把磁盘中的数据读取到内存中 这个项目我已经放到了github上 GitHub JuLongZhiLu MaQueKVDB
  • 问题解决——Python中出现“ModuleNotFoundError: No module named 'utils'”

    出现问题 ModuleNotFoundError No module named utils 解决方法 python2安装 pip install web py python3安装 pip install web py 0 40 dev1
  • qt打印html边距设置无效,如何设置QTextDocument边距和其他属性(setHTML,print to pdf)?...

    我有以下证书类用于生成一些图像和数据的pdf文档 设置图像源后 我调用generate 函数并获取test pdf输出文件 该文档是使用setHtml html 方法基于QTextDocument类创建的 问题是我在文档周围有很大的空白区域
  • Hive中如何定位数据倾斜

    1 概述 在hive中执行sql任务时 当任务在reduce阶段一直卡在99 时 很有可能出现了数据倾斜 这个时候如果我们 的sql很长 需要判断出是哪段sql导致的数据倾斜 才便于我们解决问题 2 定位数据倾斜 下面以一条sql为例子 记
  • 牛客七夕赛 D.拜托了,牛老师

    题意 给定 n n n 将 n n n分解成 k k k个不同因数的乘积 问
  • 音视频开发开发核心知识+新手入门必看基础知识

    音视频开发是一个广泛的领域 它涉及到多个技术领域 包括音频编解码 视频编解码 媒体容器格式 流媒体传输 音视频处理等 以下是音视频开发的一些基础知识 音频编解码器 音频编解码器是将数字音频信号编码成一种压缩格式 并且能够解码压缩的音频数据以
  • 错误:找不到或无法加载主类

    可能存在的问题 类路径错误 请确保你的IDE或构建工具正确配置了项目的类路径 并且能够找到 com coll ApiApplication 类所在的位置 可以检查项目的配置文件 如pom xml 或类路径设置 确保类被正确地包含在项目中 编
  • 【转】Configuring VM Acceleration on Linux

    Configuring VM Acceleration on Linux Linux based systems support virtual machine acceleration through the KVM software p
  • texlive下载速度慢(完美解决)

    在使用latex之前 都需要下载texlive 这个过程十分煎熬 官网下载 Index of CTAN systems texlive Images bjtu edu cn 清华源 Index of CTAN systems texlive
  • nodejs koa

    第一步 如何写一个基于node的hello world 创建新的文件夹nodejsdemo 在cmd命令行中进入新建的文件夹nodejsdemo 运行 npm init y 生成package json文件 在cmd命令行中进入新建的文件夹
  • 验证性实验

    验证性实验 验证性实验 ipconfig 实作一 实作二 ping 实作一 实作二 tracert 实作一 ARP 实作一 实作二 实作三 DHCP 实作一 netstat 实作一 实作二 DNS 实作一 实作二 实作三 cache 实作一
  • 安装RapidDesign_v1.3.0.Cracked.DX10.3.Rio

    1 下载 https t00y com file tempdir A2NSZVRiXTRSZAZpVGBRLg4 V2IBNw47XTBQMFYzUGVXM1R BTZaNFZkUDRQaFczUmABMAIwDTg 2 解压 D rioc
  • Discuz!X模板代码解析--Header(头文件)

    Discuz X模板代码解析 Header 头文件 header html这个文件存储于common文件下 这个大家应该不陌生吧 我是每个DIV为小节来讲 头部的核心div我就不加if语句来讲解 因为代码太多了 我会在最下面给大家总结一下
  • 【数据分析入门】Seaborn[散点图、条形图、计数图、热力图、箱型图、小提琴图]

    这里写目录标题 一 数据 二 画布外观 2 1 Seaborn样式 2 2 上下文函数 2 3 调色板 三 使用 Seaborn 绘图 3 1 坐标轴栅格 3 2 各类图形 3 2 1 散点图 3 2 2 条形图 3 2 3 计数图 3 2
  • Java编写的公交查询系统 功能非常齐全 完整源码

    今天为大家分享一个java语言编写的教室管理系统 目前系统功能已经很全面 后续会进一步完善 整个系统界面漂亮 有完整得源码 希望大家可以喜欢 喜欢的帮忙点赞和关注 一起编程 一起进步 开发环境 开发语言为Java 开发环境Eclipse或者