📄 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 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.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; } @SuppressWarnings("static-access") 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 + -