内容简介
Java语言是当今使用最为频繁的编程语言之一,一直在开发领域占据重要的地位。《Java项目开发实战密码/赢在项目开发》通过12个综合实例的实现过程,详细讲解了Java语言在实践项目中的综合运用过程,这些项目从作者的学生时代写起,到架构师结束,一直贯穿于作者最重要的开发时期。第1章讲解了一个画图板系统的具体实现流程;第2章讲解了一个航空订票管理系统的具体实现流程;第3章讲解了一个酒店管理系统的具体实现流程;第4章讲解了一个物业管理系统的具体实现流程;第5章讲解了众望书城网上系统的具体实现流程;第6章讲解了一个学校图书馆管理系统的具体实现流程;第7章讲解了一个OA办公系统的具体实现流程;第8章讲解了一个网吧管理系统的具体实现流程;第9章讲解了一个典型企业快信系统的具体实现流程;第10章讲解了利用Java技术开发当前最流行的Android地图(系统的基本流程);第11章讲解了一个任务管理系统的具体实现流程;第12章讲解了开发音像公司管家婆系统的基本流程。在具体讲解每个实例时,都遵循项目的进度来讲解,从接到项目到具体开发,直到最后的调试和发布。内容循序渐进,并穿插了学习技巧和职场生存法则,引领读者成全面掌握Java语言。
《Java项目开发实战密码/赢在项目开发(附光盘)》不但适用于Java语言的初学者,也适于有一定Java语言基础的读者,甚至也可以作为有一定造诣程序员的参考书。
目录
第1章画图板系统1
1.1赢在起点2
1.1.1赢在起点——程序员的职业
规划2
1.1.2赢在起点——做好项目分析2
1.2系统概述与预览4
1.2.1软件概述4
1.2.2项目预览4
1.3准备工作8
1.3.1搜集素材8
1.3.2获得JavaAPI手册8
1.4具体实现9
1.4.1创建一个类9
1.4.2菜单栏和标题栏的实现10
1.4.3保存文档的实现12
1.4.4界面的实现13
1.4.5调色板的实现18
1.4.6中央画布的实现23
1.4.7输入字体的实现25
1.4.8打开旧文档的实现27
1.4.9其他功能的实现31
第2章航空订票管理系统37
2.1修炼自身38
2.1.1“码农”和“高大上”38
2.1.2赢在自身——快速提升
自身修为38
2.2新的项目39
2.3系统概述和总体设计41
2.3.1系统需求分析41
2.3.2系统demo流程41
2.4数据库设计42
2.4.1选择数据库42
2.4.2数据库结构的设计43
2.5系统框架设计45
2.5.1创建工程及设计主界面46
2.5.2配置Hibernate访问类53
2.5.3系统登录模块设计56
2.6航班管理模块58
2.6.1添加飞机信息59
2.6.2添加航班60
2.6.3添加航班计划61
2.7网点管理模块63
2.7.1添加网点63
2.7.2删除网点65
2.8订票管理模块66
2.8.1登录管理66
2.8.2添加订票68
2.9系统测试69
第3章酒店管理系统71
3.1程序员职场生存秘籍72
3.1.1程序员的生存现状72
3.1.2赢在职场——修炼程序员
职场秘籍72
3.2新的项目73
3.3系统概述和总体设计74
3.3.1系统需求分析74
3.3.2实现流程分析75
3.3.3系统demo流程75
3.4数据库设计76
3.4.1选择数据库77
3.4.2数据库结构的设计77
3.5系统框架设计79
3.5.1创建工程及设计主界面80
3.5.2为数据库建立连接类83
3.5.3系统登录模块设计85
3.6基本信息管理模块87
3.6.1房间项目设置87
3.6.2客户类型设置90
3.6.3计费设置93
3.7订房/查询管理模块94
3.7.1个人订房95
3.7.2多人订房97
3.7.3营业查询99
3.8旅客信息管理模块103
3.8.1旅客信息查询103
3.8.2会员信息管理104
第4章物业管理系统107
4.1部门沟通之“钥”108
4.1.1开发公司部门现状108
4.1.2赢在公司——探讨部门
沟通之道109
4.2新的项目110
4.3系统概述和总体设计111
4.3.1系统需求分析111
4.3.2系统demo流程112
4.4数据库设计112
4.4.1选择数据库112
4.4.2数据库结构的设计112
4.5系统框架设计115
4.5.1创建工程及设计主界面115
4.5.2数据库ADO访问类119
4.5.3系统登录模块设计120
4.6基本信息管理模块122
4.6.1小区信息维护122
4.6.2楼宇信息维护126
4.6.3业主信息维护128
4.6.4收费信息维护129
4.6.5收费单价清单131
4.7消费指数管理模块132
4.7.1业主消费录入132
4.7.2物业消费录入135
4.8各项费用管理模块136
4.8.1业主费用查询136
4.8.2物业费用查询138
第5章众望书城网上系统143
第6章学校图书馆管理系统205
第7章OA办公系统241
第8章网吧管理系统273
第9章典型企业快信系统307
第10章Android地图系统343
第11章任务管理系统379
第12章音像公司管家婆系统415
精彩书摘
2.设计主界面
用户运行服务器终端后,进入系统的服务器端界面。系统的所有功能都分类放置在不同的菜单下,包括“航班管理”、“网点管理”和“订单管理”,如图2-9所示。
图2-9 服务器端界面
(1)考虑到订票系统的特性,软件界面要做到布局合理、操作快捷。主界面是整个系统通往各个功能模块的窗口,所以要将各个功能模块的窗体加入主界面中。因此在主界面中应加入整个系统的入口方法main,通过执行该方法进而执行整个系统。main方法在窗体初始化时调用,建立com.hk.server包,定义菜单栏中的主菜单信息。添加main.java类主窗体的代码如下:
publicclassServerMainFrameextendsJFrameimplementsActionListener{
privateJMenuBarjmb;
privateJMenuflight,agent,order;
privateSearchPanelcenter,tempPanel;
//初始化窗体菜单
publicServerMainFrame(){
super("航空订票系统服务器端");
jmb=newJMenuBar();//菜单栏
flight=newJMenu("航班管理");
agent=newJMenu("网点管理");
order=newJMenu("订单管理");
init();
}
(2)定义每个主菜单下的子菜单,且将各子菜单添加到相应的上级菜单中,然后将上级菜单加入菜单栏中,并通过调用showme方法显示最终效果。其代码如下:
//初始化子菜单
privatevoidinit(){
JMenuItemitem;
flight.add(item=newJMenuItem("添加航班"));item.addActionListener(this);
flight.add(item=newJMenuItem("删除航班"));item.addActionListener(this);
flight.add(item=newJMenuItem("查询航班"));item.addActionListener(this);
flight.add(item=newJMenuItem("添加飞机"));item.addActionListener(this);
flight.add(item=newJMenuItem("添加航班计划"));item.addActionListener(this);
flight.add(item=newJMenuItem("退出系统"));item.addActionListener(this);
agent.add(item=newJMenuItem("添加网点"));item.addActionListener(this);
agent.add(item=newJMenuItem("删除网点"));item.addActionListener(this);
agent.add(item=new
JMenuItem("查询在线营业网点"));item.addActionListener(this);
agent.add(item=new
JMenuItem("查询所有营业网点"));item.addActionListener(this);
order.add(item=newJMenuItem("查看所有订票"));item.addActionListener(this);
order.add(item=newJMenuItem("查看网点订单"));item.addActionListener(this);
order.add(item=newJMenuItem("网点业绩统计"));item.addActionListener(this);
//添加操作
jmb.add(flight);
jmb.add(agent);
jmb.add(order);
this.setJMenuBar(jmb);
}
//设置主界面的中心JScrollpanel的jtable
publicvoidsetCenterPanel(Stringmsg,ArrayListarr){
if(center==null){
center=newSearchPanel(msg,arr);
this.add(center,BorderLayout.CENTER);
this.setVisible(true);
}else{
center.setMsg(msg);
center.setArr(arr);
}
}
publicvoidshowMe(){
this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
this.addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
askQuit();
}
});
this.setSize(800,600);//窗体大小
this.setVisible(true);//设置可见性
}
(3)单击窗体右上角的“关闭”按钮时,会弹出如图2-10所示的对话框,询问用户是否要退出服务器端。其代码如下:
privatevoidaskQuit(){
intchoice=JOptionPane.showConfirmDialog(this,"退出服务器将无法售票,是否确定退出?",
"确定退出?",JOptionPane.YES_NO_CANCEL_OPTION);
switch(choice){
caseJOptionPane.OK_OPTION:System.exit(0);
caseJOptionPane.NO_OPTION:return;
caseJOptionPane.CANCEL_OPTION:return;
}
}
图2-10是否退出服务器端
(4)以下代码用于实现各子菜单的具体功能。actionPerformed方法的参数ActionEvente的功能是调用getActionCommand()方法得到控件Command中的字符串,以确定执行的是哪个控件的动作,进而来执行具体回调,即根据菜单上的字符串名字来确定用户单击了哪个菜单项。其代码如下:
//航班基本信息
publicvoidactionPerformed(ActionEvente){
Stringcommand=e.getActionCommand();
if(command.equals("添加航班")){
newAddFlightSchedularDialog(this).showMe();
}
if(command.equals("删除航班")){
newRemoveFlightSchedularDialog(this).showMe();
}
if(command.equals("查询航班")){
newSearchFlightSch(this).showMe();
}
if(command.equals("添加飞机")){
newAddPlaneModelDialog(this).showMe();
}
if(command.equals("添加航班计划")){
newAddFlight(this);
}
if(command.equals("退出系统")){
askQuit();
}
//订票业务
if(command.equals("查看所有网点订票")){
newSearchAllOrder().start();
}
}
}
前言/序言
Java项目开发实战密码/赢在项目开发(附光盘)