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

📄 addorderitempanel.java

📁 航空售票系统的代码
💻 JAVA
字号:
package com.tarena.abs.client;

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

public class AddOrderItemPanel extends JPanel implements ActionListener{
	JLabel label1=new JLabel("添加订单项:");
	JLabel label2=new JLabel("乘客姓名:");
	JTextField passengerName=new JTextField(12);
	JLabel label3=new JLabel("证件号码:");
	JTextField passengerId=new JTextField(18);
	JLabel label4=new JLabel("机票类型:");

	//JComboBox(object[])  ,  values()返回 TicketType[]
	JComboBox ticketType=new JComboBox(TicketType.values());
	JLabel label5=new JLabel("舱位等级:");
	JComboBox cabinClass=new JComboBox(CabinClass.values());
	JButton button=new JButton("添加到订单");
	
	public AddOrderItemPanel(){
		init();
		eventHandle();
	}
	
	/**
	 * 该方法用于构造图形界面
	 *
	 */
	private void init(){
		GridBagLayout gbl=new GridBagLayout();
		GridBagConstraints constraints=new GridBagConstraints();
		this.setLayout(gbl);
		
		buildConstraints(constraints,0,0,1,1,10,100);
		constraints.fill=GridBagConstraints.NONE;
		constraints.anchor=GridBagConstraints.EAST;
		gbl.setConstraints(label1,constraints);
		this.add(label1);
		
		buildConstraints(constraints,1,0,1,1,10,100);
		constraints.fill=GridBagConstraints.NONE;
		constraints.anchor=GridBagConstraints.EAST;
		gbl.setConstraints(label2,constraints);
		this.add(label2);
		
		buildConstraints(constraints,2,0,1,1,20,100);
		constraints.fill=GridBagConstraints.NONE;
		constraints.anchor=GridBagConstraints.CENTER;
		gbl.setConstraints(passengerName,constraints);
		this.add(passengerName);

		buildConstraints(constraints,3,0,1,1,10,100);
		constraints.fill=GridBagConstraints.NONE;
		constraints.anchor=GridBagConstraints.EAST;
		gbl.setConstraints(label3,constraints);
		this.add(label3);
		
		buildConstraints(constraints,4,0,1,1,20,100);
		constraints.fill=GridBagConstraints.NONE;
		constraints.anchor=GridBagConstraints.CENTER;
		gbl.setConstraints(passengerId,constraints);
		this.add(passengerId);
		
		buildConstraints(constraints,5,0,1,1,10,100);
		constraints.fill=GridBagConstraints.NONE;
		constraints.anchor=GridBagConstraints.EAST;
		gbl.setConstraints(label4,constraints);
		this.add(label4);
		
		buildConstraints(constraints,6,0,1,1,20,100);
		constraints.fill=GridBagConstraints.NONE;
		constraints.anchor=GridBagConstraints.CENTER;
		gbl.setConstraints(ticketType,constraints);
		this.add(ticketType);
		
		buildConstraints(constraints,7,0,1,1,0,100);
		constraints.fill=GridBagConstraints.NONE;
		constraints.anchor=GridBagConstraints.EAST;
		gbl.setConstraints(label5,constraints);
		this.add(label5);
		
		buildConstraints(constraints,8,0,1,1,0,100);
		constraints.fill=GridBagConstraints.NONE;
		constraints.anchor=GridBagConstraints.CENTER;
		gbl.setConstraints(cabinClass,constraints);
		this.add(cabinClass);
		
		buildConstraints(constraints,5,2,1,1,20,100);
		constraints.fill=GridBagConstraints.NONE;
		constraints.anchor=GridBagConstraints.CENTER;
		gbl.setConstraints(button,constraints);
		this.add(button);
	}
	
	/**
	 * 该方法设置图形组件的事件监听器。
	 *
	 */
	private void eventHandle(){
		button.addActionListener(this);
	}
	
	/**
	 * 该方法实现事件处理的代码。
	 */
	public void actionPerformed(ActionEvent arg0) {
		
		//		如果还没有查询航班
		if(ClientMainClass.clientFrame.getTable()==null){
			JOptionPane.showMessageDialog(this,"请先查询航班!");
			return;
		}
		
		//获得以选的航班索引
		int i=ClientMainClass.clientFrame.getTable().getSelectedRow();
		if(i==-1){
			JOptionPane.showMessageDialog(this,"请先选择航班!");
			return;
		}
		
		//怎样得到航班对象的???????返回list索引处的对象?????
		Flight flight=(Flight)ClientMainClass.flights.get(i);
		if(flight==null){
			JOptionPane.showMessageDialog(this,"选择的航班无效,请重新选择!");
			return;
		}
	
		//默认不是null,而是空串
		if(passengerName.getText().trim().isEmpty() || passengerId.getText().trim().isEmpty()){
			JOptionPane.showMessageDialog(this,"请输入您的姓名和证件号码!");
			return;
		}
		
		TicketOrder item=new TicketOrder();                  //生成订单项
		item.setPassengerName(passengerName.getText());
		item.setPassengerId(passengerId.getText());
		item.setFlight(flight);
		item.setF_class((CabinClass)cabinClass.getSelectedItem());
		item.setT_type((TicketType)ticketType.getSelectedItem());
		item.setBranch(ClientMainClass.currentUser);


		
		//如果没有显示订单窗口,那么```
		if(ClientMainClass.currentOrderFrame==null){        
			ClientMainClass.currentOrderFrame=new OrderFrame();	
			//订单窗口加入订单
			ClientMainClass.currentOrderFrame.setOrder(
					new Order(ClientMainClass.currentUser,
							new java.util.Date(),
							ClientMainClass.socket.getInetAddress()
					));
			ClientMainClass.currentOrderFrame.showMe();
		}
		//如果显示了订单窗口,加入新的订单项
		ClientMainClass.currentOrderFrame.addOrderItem(new OrderItemPanel(item));
	}
	
	/**
	 * 该方法为GridBagLayout布局管理器提供每个组件的布局参数。
	 */
	private void buildConstraints(GridBagConstraints cons,int gridx,int gridy,
			int gridwidth,int gridheight,int weightx,int weighty){
		cons.gridx=gridx;
		cons.gridy=gridy;
		cons.gridwidth=gridwidth;
		cons.gridheight=gridheight;
		cons.weightx=weightx;
		cons.weighty=weighty;
	}
}

⌨️ 快捷键说明

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