火车票查询项目计划进度安排

时间

任务分解

完成内容——代码(类、方法等)

界面

逻辑功能

第十三周

主界面设计实现

(车次、出发站、目的站、时间)

Train Ticket.java

TrainTime()

功能:事件监听

Train Ticket.java

第十四周

功能:车次查询

(站—站查询)

Query.java

功能:车票查询

Query.java

第十五周

功能:提示功能

(提示用户该控件如何使用)

Train Ticket.java

功能:数据保存读取功能

(文本文件)

AddData.java

功能:购票

AddData.java

第十六周

界面优化

整合及程序测试

import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;import java.awt.*;
import java.awt.event.*;
import java.util.*;import javax.swing.plaf.basic.*;//启动类(鼠标监听,列表监听,键盘监听)
public class TrainTime extends JFrame implementsActionListener,MouseListener,ListSelectionListener,KeyListener
{//创建描述表格标题的vectorprivate Vector<String> vhead = new Vector<String>();{vhead.add("车次");vhead.add("始发站");vhead.add("终点站");vhead.add("列车类型");vhead.add("发站");vhead.add("发时");vhead.add("到站");vhead.add("到时");}//创建包含表格数据的vectorprivate Vector<Vector> vdata = new Vector<Vector>();//创建表格型对象private DefaultTableModel dtm = new DefaultTableModel(vdata,vhead);//创建表格控件private JTable jt = new JTable(dtm);//将表格控件放到滚动窗体中private JScrollPane jspTable = new JScrollPane(jt);//创建表格的行排序器TableRowSorter sorter = new TableRowSorter(dtm);//创建面板,用来查询private JPanel jp = new JPanel();//创建窗体分割private JSplitPane jsp = new JSplitPane(JSplitPane.VERTICAL_SPLIT,jspTable,jp);//创建单选按钮数组private JRadioButton[] jrbArray = {new JRadioButton("站站查询",true),new JRadioButton("车次查询"),new JRadioButton("车站所有车次查询")};//创建单选按钮组private ButtonGroup bgStation = new ButtonGroup();//创建标签和文本框private JLabel jlStart = new JLabel("出发站");private JComboBox jcbStart = new JComboBox();private JLabel jlEnd = new JLabel("目的站");private JComboBox jcbEnd = new JComboBox();private JLabel jlTid = new JLabel("车次");private JTextField jtfTname = new JTextField();private JLabel jlSid = new JLabel("车站站名");private JComboBox jcbSname = new JComboBox();//创建按钮private JButton jbQuery = new JButton("查询");private JButton jbApp = new JButton("附加功能");//创建可编辑组合框的默认编辑器private BasicComboBoxEditor bcbeStart = new BasicComboBoxEditor();//创建组合框的默认类型private DefaultComboBoxModel dcbmStart = new DefaultComboBoxModel();private BasicComboBoxEditor bcbeEnd = new BasicComboBoxEditor();private DefaultComboBoxModel dcbmEnd = new DefaultComboBoxModel();private BasicComboBoxEditor bcbeMid = new BasicComboBoxEditor();private DefaultComboBoxModel dcbmMid = new DefaultComboBoxModel();private BasicComboBoxEditor bcbeSname = new BasicComboBoxEditor();private DefaultComboBoxModel dcbmSname = new DefaultComboBoxModel();//创建弹出菜单PopupMenu popup = new PopupMenu();//创建菜单Menu jm = new Menu("添加");//创建菜单项数组MenuItem[] item = {new MenuItem("车次添加"),new MenuItem("车站添加"),new MenuItem("关系添加"),new MenuItem("退出程序")};//定义SystemTray成员变量SystemTray tray;//定义TrayIcon成员变量TrayIcon trayIcon;public TrainTime(){this.add(jsp);//设置分隔条的位置jsp.setDividerLocation(400);//设置分隔条大小jsp.setDividerSize(2);//为表格添加排序器jt.setRowSorter(sorter);jt.setRowHeight(20);//设置表格行高//为表格选择模型注册监听器jt.getSelectionModel().addListSelectionListener(this);jt.addMouseListener(this);//设置表头不可编辑jt.getTableHeader().setReorderingAllowed(false);//设置JPanel布局为空jp.setLayout(null);//初始化JRadioButton数组initJRadioButton();//初始化文本框initJTextField();//初始化系统托盘initTray();//加载窗体图标Image icon = Toolkit.getDefaultToolkit().getImage("img/icon.gif");//设置窗体图标this.setIconImage(icon);//设置窗体的名称this.setTitle("火车时刻表");//使最大化按钮不可用this.setResizable(false);//设置窗体的大小及位置this.setBounds(120,50,800,600);//设置窗体的可见性this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   }private void initJRadioButton() {// TODO Auto-generated method stubfor(int i=0;i<jrbArray.length;i++){//设置单选按钮的大小jrbArray[i].setBounds(200,50+i*30,130,30);//将单选按钮加到JPanel中jp.add(jrbArray[i]);//将单选按钮加到按钮组里面bgStation.add(jrbArray[i]);//注册事件监听器jrbArray[i].addActionListener(this);}}private void initJTextField() {// TODO Auto-generated method stub//设置标签大小并将它加入JPanel中jlStart.setBounds(150,20,50,30);jp.add(jlStart);//设置jcbStart的大小及位置jcbStart.setBounds(210,25,80,20);//设置jcbStart为可编辑状态jcbStart.setEditable(true);//为jcbStart设置编辑器jcbStart.setEditor(bcbeStart);//为jcbStart设置ModeljcbStart.setModel(dcbmStart);jp.add(jcbStart);//为文本框注册事件监听器//jcbStart.addActionListener(this);//注册鼠标事件监听器jcbStart.getEditor().getEditorComponent().addMouseListener(this);//注册键盘监听器jcbStart.getEditor().getEditorComponent().addKeyListener(this);jlEnd.setBounds(330,20,50,30);jp.add(jlEnd);jcbEnd.setBounds(390,25,80,20);//将jcbEnd设置为可编辑jcbEnd.setEditable(true);//将jcbEnd设置editor及modeljcbEnd.setEditor(bcbeEnd);jcbEnd.setModel(dcbmEnd);jp.add(jcbEnd);jlTid.setBounds(400,80,30,30);jp.add(jlTid);jtfTname.setBounds(460,85,80,20);jp.add(jtfTname);//为jtfTname添加鼠标监听器jtfTname.addMouseListener(this);//为jtfTname添加事件监听器jtfTname.addActionListener(this);jlSid.setBounds(400,110,60,30);jp.add(jlSid);jcbSname.setBounds(460,115,80,20);//将jcbSname设置为可编辑jcbSname.setEditable(true);//为jcbSname设置editor及modeljcbSname.setEditor(bcbeSname);jcbSname.setModel(dcbmSname);jp.add(jcbSname);//为jcbSname添加鼠标监听jcbSname.getEditor().getEditorComponent().addMouseListener(this);//为jcbSname添加键盘监听jcbSname.getEditor().getEditorComponent().addKeyListener(this);//为jcbSname添加事件监听jcbSname.addActionListener(this);//设置按钮位置及大小并加到JPaneljbQuery.setBounds(580,105,60,30);jp.add(jbQuery);//为按钮添加事件监听器和鼠标监听器jbQuery.addActionListener(this);jbQuery.addMouseListener(this);jbApp.setBounds(650,105,100,30);jp.add(jbApp);//添加监听器jbApp.addMouseListener(this);jbApp.addActionListener(this);}private void initTray() {//添加菜单for(int i=0;i<item.length;i++){//为菜单注册监听器item[i].addActionListener(this);//为菜单项数组中前三个菜单项添加到“弹出菜单”if(i<3){jm.add(item[i]);}}}@Overridepublic void keyTyped(KeyEvent e) {// TODO Auto-generated method stub}@Overridepublic void keyPressed(KeyEvent e) {// TODO Auto-generated method stub}@Overridepublic void keyReleased(KeyEvent e) {// TODO Auto-generated method stub}@Overridepublic void valueChanged(ListSelectionEvent e) {// TODO Auto-generated method stub}@Overridepublic void mouseClicked(MouseEvent e) {// TODO Auto-generated method stub}@Overridepublic void mousePressed(MouseEvent e) {// TODO Auto-generated method stub}@Overridepublic void mouseReleased(MouseEvent e) {// TODO Auto-generated method stub}@Overridepublic void mouseEntered(MouseEvent e) {// TODO Auto-generated method stub}@Overridepublic void mouseExited(MouseEvent e) {// TODO Auto-generated method stub}@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stub}public static void main(String[] args){new TrainTime();}}

转载于:https://www.cnblogs.com/liuyajuan/p/5543324.html

火车票查询项目计划进度安排相关推荐

  1. 《Java高级程序设计》期末作业【2】-进度安排

    计算器项目计划进度安排: 项目成员:潘世林 何青 柴晓光 张峰 转载于:https://www.cnblogs.com/panshilin/p/5578496.html

  2. [项目管理]-第六章:工作量估计和进度安排

    第六章:工作量估计和进度安排(PPT.199-220) 1.软件规模估计的方法(代码行.功能点) 2.功能点法估计软件规模的步骤(能够根据案例数据计算估计软件规模) 3.自底向上的工作量估计方法步骤( ...

  3. 软件进度管理的基本原则和进度安排

    软件进度管理的基本原则 指导软件进度安排的基本原则如下: 1.划分项目必须划分成若干可以管理的活动和任务.为了实现羡慕的划分,对于产品的过程都需要进行分解. 2.相互依赖性划分后的各个活动或任务之间的 ...

  4. 合理的进度安排--人月

    目录 1.首先,没有一个很有效的估算方法. 2.我们采用的估算技术隐含的假设人和月都可以互换,错误的将进度与工作量相互混淆. 3.由于对自己的估算缺乏信心,软件经理通常不会有耐心持续的估算这项工作. ...

  5. python实现火车票查询工具_Python 实现一个火车票查询的工具

    原标题:Python 实现一个火车票查询的工具 作者 sexycoder 本文转载自简书,转载需授权 使用 python 实现一个查询火车票的小工具 主要功能: 输入出发车站,到达车站,时间,然后返回 ...

  6. 全国铁路查询系统_火车票查询时刻表 全国列车时刻表 火车时刻表查询系统使用说明...

    春运来了,快过年了, 又到一年中最一票难求的时候了,在外辛辛苦苦打拼了一年,为了让大家尽早的和亲朋好友家人团聚,本人今年很英勇的出来帮大家代抢火车票啦! 特地为大家建立了一个捡漏票微信群, 加微信qq ...

  7. 2021年全国大学生电子设计竞赛重新启动通知及进度安排

    大家好,我是张巧龙,昨天晚上收到了电赛重新启动的通知. 2021年全国大学生电子设计竞赛 重新启动通知及进度安排 (电组字[2021]03号) 各赛区组织委员会.各有关高等学校: 根据全国疫情变化情况 ...

  8. python实现火车票查询_python实现12306火车票查询器

    12306火车票购票软件大家都用过,怎么用Python写一个命令行的火车票查看器,要求在命令行敲一行命令来获得你想要的火车票信息,下面通过本文学习吧. Python火车票查询器 接口设置 先给这个小应 ...

  9. 小学五年级计算机进度安排,苏教版小学五年级信息技术教学计划及进度安排.DOC...

    苏教版小学五年级信息技术教学计划及进度安排 PAGE PAGE 1 泰兴市蒋华小学五年级信息技术教学计划 一.学生基本情况 五年级学生对学习计算机有了一定的基础,掌握了简单的Word文字处理和Powe ...

最新文章

  1. 怎样获取网站的域名_搭建一个网站,通常的6大步骤你知道吗?
  2. V4L2 driver(一). 整体框架
  3. linux 下查看机器是cpu是几核的
  4. Javascript重温OOP之原型与原型链
  5. NET问答: C# 中是否有 format json 的类库?
  6. rsync 同步优化_可以优化同步吗?
  7. OpenCV学习(二十一) :计算图像连通分量:connectedComponents(),connectedComponentsWithStats()
  8. 计算机网络 --- 传输层
  9. 计算机科技专业前景,美国伊利诺伊理工大学
  10. 二维三角元有限元方法matlab,有限元C++编程实践.doc
  11. 三星首款5nm A78旗舰芯Exynos 1080即将亮相
  12. .net找List1和List2的差集
  13. c++ 获取当前时间_ThinkPHP6中获取参数的3种常用方法【总结】
  14. java 变位词,[Java教程]变位词的查找(下)
  15. DB9接口定义 串口接口定义 MAX232电路
  16. 乖离率背离公式_通达信指标公式源码操盘K线主图指标
  17. 抖音app用户体验分析
  18. 金代文化是中华民族文化的重要组成部分
  19. Android开发-窗口跳转
  20. linux 光标切换快捷键,光标操作快捷键,光标快捷键

热门文章

  1. 教师资格证面试,你要知道的那些事!
  2. 企业为什么选择SDWAN代替MPLS?
  3. UE4入门学习4:C++编程介绍
  4. MongoDB基础-张晓飞-专题视频课程
  5. 哈密顿系统_Matlab
  6. Chapter(MySQL)(基础知识)
  7. c语言给结构体指针申请空间,结构体中的指针变量申请空间问题
  8. 编程中无穷大的设定 很多人可能设为0x7fffffff,这个数的确是32-bit int的最大值,符号位为0,其他的都是1 但在很多情况下,0x7fffffff会出现错误,比如溢出,这样两个无穷大数相
  9. 机器学习/深度学习中的常用损失函数公式、原理与代码实践(持续更新ing...)
  10. c++课设 _ 保卫萝卜