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


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

    时间

    任务分解

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

    界面

    逻辑功能

    第十三周

    主界面设计实现

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

    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 implements
                            ActionListener,MouseListener,ListSelectionListener,KeyListener
    {
    	//创建描述表格标题的vector
    	private Vector<String> vhead = new Vector<String>();
    	{
    		vhead.add("车次");
    		vhead.add("始发站");
    		vhead.add("终点站");
    		vhead.add("列车类型");
    		vhead.add("发站");
    		vhead.add("发时");
    		vhead.add("到站");
    		vhead.add("到时");
    	}
    	//创建包含表格数据的vector
    	private 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 stub
    		for(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设置Model
    		jcbStart.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及model
    		jcbEnd.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及model
    		jcbSname.setEditor(bcbeSname);
    		jcbSname.setModel(dcbmSname);
    		jp.add(jcbSname);
    		//为jcbSname添加鼠标监听
    		jcbSname.getEditor().getEditorComponent().addMouseListener(this);
    		//为jcbSname添加键盘监听
    		jcbSname.getEditor().getEditorComponent().addKeyListener(this);
    		//为jcbSname添加事件监听
    		jcbSname.addActionListener(this);
    		//设置按钮位置及大小并加到JPanel
    		jbQuery.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]);
    			}
    		}
    	}
    	@Override
    	public void keyTyped(KeyEvent e) {
    		// TODO Auto-generated method stub
    		
    	}
    	@Override
    	public void keyPressed(KeyEvent e) {
    		// TODO Auto-generated method stub
    		
    	}
    	@Override
    	public void keyReleased(KeyEvent e) {
    		// TODO Auto-generated method stub
    		
    	}
    	@Override
    	public void valueChanged(ListSelectionEvent e) {
    		// TODO Auto-generated method stub
    		
    	}
    	@Override
    	public void mouseClicked(MouseEvent e) {
    		// TODO Auto-generated method stub
    		
    	}
    	@Override
    	public void mousePressed(MouseEvent e) {
    		// TODO Auto-generated method stub
    		
    	}
    	@Override
    	public void mouseReleased(MouseEvent e) {
    		// TODO Auto-generated method stub
    		
    	}
    	@Override
    	public void mouseEntered(MouseEvent e) {
    		// TODO Auto-generated method stub
    		
    	}
    	@Override
    	public void mouseExited(MouseEvent e) {
    		// TODO Auto-generated method stub
    		
    	}
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		// TODO Auto-generated method stub
    		
    	}
    	public static void main(String[] args)
    	{
    		new TrainTime();
    	}
    	
    }
    
  • 相关阅读:
    IOS – OpenGL ES 图像浮雕3d效果 GPUImageEmbossFilter
    IOS – OpenGL ES 图像柏林噪点/花边噪点 GPUImagePerlinNoiseFilter
    IOS – OpenGL ES 图像CGA色彩滤镜 GPUImageCGAColorspaceFilter
    IOS – OpenGL ES 图像色调分离噪点效果 GPUImagePosterizeFilter
    IOS – OpenGL ES 图像加亮边缘 GPUImage3x3ConvolutionFilter
    一篇文章搞清楚 CI, CD AND CD
    C# 按字节截断字符串
    web浏览器网页打印
    数据库字段命名与Java中变量命名区别
    NSGA2快速非支配排序实现python
  • 原文地址:https://www.cnblogs.com/liuyajuan/p/5543324.html
Copyright © 2020-2023  润新知