📄 orderframe.java
字号:
package com.tarena.abs.client;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Iterator;
import com.tarena.abs.model.*;
/**
* 显示当前订单的窗口,包含所有订单项信息。
* @author new
*
*/
public class OrderFrame extends JFrame implements ActionListener{
/**
*
*/
private static final long serialVersionUID = 4204688393435975469L;
private JPanel center,south;
private JButton orderButton;
private JButton cancelButton;
private JLabel label;
private Order order;
public OrderFrame(){
super("当前订单");
center=new JPanel();
south=new JPanel();
orderButton=new JButton("出票");
cancelButton=new JButton("取消");
label=new JLabel("");
label.setForeground(Color.RED);
south.add(orderButton);
south.add(cancelButton);
south.add(label);
this.add(center,BorderLayout.CENTER);
this.add(south,BorderLayout.SOUTH);
orderButton.addActionListener(this);
cancelButton.addActionListener(this);
}
public void addOrderItem(OrderItemPanel panel){
order.addItem(panel.getItem());
center.add(panel);
label.setText("当前订单项:"+order.getSize()+",总金额:"+order.getAllPrice());
this.setVisible(true);
}
public void removeOrderItem(OrderItemPanel panel){
order.removeItem(panel.getItem());
center.remove(panel);
label.setText("当前订单项:"+order.getSize()+",总金额:"+order.getAllPrice());
this.repaint();
}
public void showMe(){
this.setSize(600,600);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
}
public void setOrder(Order order){
this.order=order;
}
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("出票")){
//自己实现的代码
Object o = new Object();
synchronized(o){
// 创建一个请求对象,该请求的类型为登录请求
Request req=new Request("order");
try {
req.setData("Order", ClientMainClass.currentUser.getName());
//将请求对象写往服务器
ClientMainClass.oos.writeObject(req);
ClientMainClass.oos.flush();
//将订单对象写往服务器
ClientMainClass.oos.writeObject(order);
ClientMainClass.oos.flush();
Agent agent = (Agent)ClientMainClass.ois.readObject();
if(agent != null){
JOptionPane.showMessageDialog(this, "出票成功!");
ClientMainClass.currentUser = agent;
ClientMainClass.clientFrame.dispose();
ClientMainClass.clientFrame = new ClientMainFrame();
ClientMainClass.clientFrame.showMe();
ClientMainClass.currentOrderFrame=null;
this.dispose();
//把信息写入ticket.txt文件中
ArrayList a = order.getItems();
PrintWriter pw = new PrintWriter(new FileOutputStream("./ticket.txt",true));
@SuppressWarnings("unused")
Calendar c = new GregorianCalendar();
pw.println("\n"+c.toString());
pw.flush();
for (Iterator iter = a.iterator(); iter.hasNext();) {
OrderItem element = (OrderItem) iter.next();
pw.println(element.toString());
pw.flush();
}
pw.close();
}else{
JOptionPane.showMessageDialog(this,"出票失败!");
ClientMainClass.currentOrderFrame=null;
this.dispose();
}
} catch (IOException e1) {
e1.printStackTrace();
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
}
}
if(e.getActionCommand().equals("取消")){
ClientMainClass.currentOrderFrame=null;
this.dispose();
return;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -