

图13 添加航班计划界面
Fig13 Add flight schedule Interface
部分代码如下:
public boolean addFlightSchedular(FlightSchedular fs) {
ArrayList<FlightSchedular> fss = null;
String sql = “FROM FlightSchedular”;
//查出已存在的所有航班计划
fss = this.getHibernateTemplate().find(sql);
//对所有的航班计划进行遍历
for(FlightSchedular f : fss){
//如果要添加的航班计划已经存在,则返回false,不能添加
if(f.getFlightSchedularName().equals(f.getFlightSchedularName())){
return false;
}
}
//如果数据库中不存在要添加的航班计划,则添加该航班计划,返回true
This.getHibernateTemplate().save(fs);
return true;
}
(3)查看在线代理商,如图14所示。
登录成功后的代理商信息会存在ArrayList<Agent>集合中,当服务器要查看在线代理商信息时,程序会遍历这个集合,将集合中的所有代理商信息显示在列表中。
图14 在线代理商信息界面
Fig14 Online agent information interface
部分代码如下:
//显示在线代理商信息
public class AgentTableModel extends AbstractTableModel{
ArrayList s;
public AgentTableModel(ArrayList s){
//传递在线代理商集合
this.s=s;
}
//设计表格的列
public String getColumnName(int arg0) {
switch(arg0){
case 0: return "代理商名字";
case 1: return "E_MAIL";
case 2: return "积分";
default: return null;
}
}
//遍历并取得代理商的相关信息
public Object getValueAt(int row, int col) {
Agent f=(Agent)s.get(row);
if(row<0 || row>s.size())
return null;
//条件语句判断
switch(col){
case 0: return f.getName();
case 1: return f.getEmail();
case 2: return f.getScore();
default: return null;
}
}
4.4.2 客户端
客户端主要包括用户登录和登录后主程序界面,所提供的功能包括:用户输入用户名和密码,向服务器发送登录请求;用户可以查询两地之间具体时间的航班;用户可以订票、出票。
(1)客户端登录界面如图15所示。
图15 客户端登录界面
Fig15 Client Login Interface
部分代码如下:
//添加事件监听器
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("登录")){
if(name.getText().equals("") || new String(password.
getPassword()).equals("")){
JOptionPane.showMessageDialog(this,"姓名和密码不能为空!");
return;//结束程序
}
try {
Request req=new Request("login");//构建Request对象
req.setData("UserName",name.getText());//给req对象赋值
req.setData("Password",newString(password.getPassword()));
ClientMainClass.oos.writeObject(req);
ClientMainClass.oos.flush();
//读取对象
Response res=(Response)ClientMainClass.ois.readObject();
//强转为Agent类
Agent user=(Agent)res.getData();
if(user!=null){//如果user不为空,则进入程序内部