📄 orderframe.java
字号:
package com.tarena.abs.client;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import com.tarena.abs.model.*;
/**
* 显示当前订单的窗口,包含所有订单项信息。
* @author new
*
*/
public class OrderFrame extends JFrame implements ActionListener{
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.setVisible(false);
//this.setVisible(true);
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("出票")){
Request req = new Request("order");
Boolean b=false;
for(Object o:order.getItems()){
TicketOrder i = (TicketOrder)o;
i.setCal(Calendar.getInstance());//初始化下单时间
}
try {
ClientMainClass.oos.writeObject(req);
ClientMainClass.oos.writeObject(order);
ClientMainClass.oos.flush();
Object obj = ClientMainClass.ois.readObject();
b = (Boolean)obj;
System.out.println("客户端读的"+b);
} catch (Exception e1) {
e1.printStackTrace();
}
if(b){
//为什么dispose(),订票才可以正常??????????????
try {
FileOutputStream fo = new FileOutputStream("ticket.txt");
PrintWriter pw = new PrintWriter(fo);
ArrayList<TicketOrder> items = order.getItems();
StringBuffer sb = new StringBuffer();
for(TicketOrder i: items){
sb.append(i.toString2());
}
pw.write(sb.toString());
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
JOptionPane.showMessageDialog(ClientMainClass.clientFrame,"出票成功");
ClientMainClass.currentOrderFrame=null;
this.dispose();
}else
JOptionPane.showMessageDialog(ClientMainClass.clientFrame,"出票失败");
ClientMainClass.currentOrderFrame=null;
this.dispose();
}
if(e.getActionCommand().equals("取消")){
ClientMainClass.currentOrderFrame=null;
this.dispose();
return;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -