⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clientmainframe.java

📁 航空定票系统:户端功能模块:用户登录模块
💻 JAVA
字号:
package com.tarena.abs.view.client;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;
import java.io.*;
import com.tarena.abs.model.*;

import java.util.*;

public class ClientMainFrame extends JFrame implements ActionListener{
	JLabel message;
	JLabel[] labels;
	JTextField[] jtfs;
	JButton query,reset;
	JButton relogin,quit;
	JPanel jp1,jp2,jp3;
	User user;
	Socket socket;
	public ClientMainFrame(String fileName){
		super("航班机票预定系统--客户端主界面");
		message=new JLabel("");
		message.setFont(new Font("",Font.BOLD,18));
		message.setForeground(Color.RED);
		labels=new JLabel[8];
		jtfs=new JTextField[5];
		labels[0]=new JLabel("航班查询:");
		labels[1]=new JLabel("出发地:");
		labels[2]=new JLabel("目的地:");
		labels[3]=new JLabel("日期:");
		labels[4]=new JLabel("年");
		labels[5]=new JLabel("月");
		labels[6]=new JLabel("日");
		labels[7]=new JLabel("** 只接受60天以内的预定");
		jtfs[0]=new JTextField(10);//出发地
		jtfs[1]=new JTextField(10);//目的地
		jtfs[2]=new JTextField(4);//年
		jtfs[3]=new JTextField(2);//月
		jtfs[4]=new JTextField(2);//日
		query=new JButton("查询");
		reset=new JButton("清空");
		relogin=new JButton("重新登录");
		quit=new JButton("退出");
		jp1=new JPanel();
		jp2=new JPanel();
		jp3=new JPanel();
		init();
		createSocket(fileName);
		addEventHandle();
		LoginDialog login=new LoginDialog(this,socket);
		login.showMe();
	}
	private void init(){
		this.setLayout(new BorderLayout(5,20));
		jp1.setLayout(new FlowLayout(FlowLayout.LEFT));
		jp1.add(labels[0]);
		jp1.add(labels[1]);jp1.add(jtfs[0]);
		jp1.add(labels[2]);jp1.add(jtfs[1]);
		jp1.add(labels[3]);jp1.add(jtfs[2]);
		jp1.add(labels[4]);jp1.add(jtfs[3]);
		jp1.add(labels[5]);jp1.add(jtfs[4]);
		jp1.add(labels[6]);jp1.add(labels[7]);
		jp1.add(query);jp1.add(reset);
		this.add(jp1,BorderLayout.NORTH);
		this.add(jp2,BorderLayout.CENTER);
		jp3.setLayout(new FlowLayout(FlowLayout.LEFT,15,5));
		jp3.add(message);
		jp3.add(relogin);
		jp3.add(quit);
		this.add(jp3,BorderLayout.SOUTH);
	}
	private void addEventHandle(){
		query.addActionListener(this);
		reset.addActionListener(this);
		relogin.addActionListener(this);
		quit.addActionListener(this);
		this.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent arg0) {
				askQuit();
			}		
		});
	}
	public void showMe(){
		this.setSize(1000,700);
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
	}
	public void createSocket(String fileName){
		Properties p=new Properties();
		FileInputStream fis=null;
		try {
			fis=new FileInputStream(fileName);
			p.load(fis);
			String IPAddress=p.getProperty("IPAddress");
			int port=Integer.parseInt(p.getProperty("port"));
			socket=new Socket(IPAddress,port);		
		} catch (Exception e) {
			JOptionPane.showMessageDialog(this,"不能建立到服务器的连接,请检查网络!");
			e.printStackTrace();
			System.exit(0);
		}finally{
			if(fis!=null)try{fis.close();}catch(IOException e){}
		}
	}
	/**
	 * 此方法询问用户是否确定退出,若用户确定,则关闭系统资源,
	 * 向服务器发送退出请求,然后退出客户端程序。
	 * 此方法在用户点击“退出”按钮或单击关闭按钮时被调用。
	 *
	 */
	public void askQuit(){
		JOptionPane.showConfirmDialog(this,"确定退出?");
	}
	public void setUser(User user){
		this.user=user;
		message.setText(user.getWelcomMessage());
	}
	public void actionPerformed(ActionEvent e) {
		if(e.getActionCommand().equals("查询")){
			MyDate date=new MyDate(Integer.parseInt(jtfs[2].getText()),
					Integer.parseInt(jtfs[3].getText()),
					Integer.parseInt(jtfs[4].getText()));
			Request req=new Request("flight_query");
			req.setParameter("FromAddress",jtfs[0].getText());
			req.setParameter("ToAddress",jtfs[1].getText());
			req.setParameter("Date",date.simpleString());
			
			//此处将要添加连接服务器的代码。
			
		}else if(e.getActionCommand().equals("清空")){
			for(int i=0;i<jtfs.length;i++){
				jtfs[i].setText("");
			}
		}else if(e.getActionCommand().equals("退出")){
			askQuit();
		}else if(e.getActionCommand().equals("重新登录")){
			message.setText("");
			user=null;
			new LoginDialog(this,socket).showMe();
		}	
	}
	
	public static void main(String[] args){
		new ClientMainFrame(".\\airline\\client_config.txt").showMe();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -