📄 xmassalesframe.java
字号:
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.text.NumberFormat;
import java.util.StringTokenizer;
public class XmasSalesFrame extends JPanel {
private static final long serialVersionUID = 1L;
public XmasSalesFrame() {
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
}
private static JFrame frame = new JFrame();
private void jbInit() throws Exception {
displayCards.setBounds(new Rectangle(5, 4, 160, 23));
displayCards.setText("Dispaly Cards");
displayCards
.addActionListener(new XmasSalesFrame_displayCards_actionAdapter(
this));
displayBarChart.setBounds(new Rectangle(170, 4, 160, 23));
displayBarChart.setText("Display Bar Chart");
displayBarChart
.addActionListener(new XmasSalesFrame_displayBarChart_actionAdapter(
this));
sortPrintExit.setBounds(new Rectangle(335, 4, 160, 23));
sortPrintExit.setText("Sort,Print and Exit");
sortPrintExit
.addActionListener(new XmasSalesFrame_sortPrintExit_actionAdapter(
this));
this.setLayout(null);
frame.addWindowListener(new XmasSalesFrame_frame_windowAdapter(this));
processSale.setBounds(new Rectangle(65, 311, 113, 25));
processSale.setText("Process sale");
processSale
.addActionListener(new XmasSalesFrame_processSale_actionAdapter(
this));
clear.setBounds(new Rectangle(65, 335, 113, 25));
clear.setText("Clear");
clear.addActionListener(new XmasSalesFrame_clear_actionAdapter(this));
quantity.setBounds(new Rectangle(337, 340, 128, 22));
cardCode.setBounds(new Rectangle(337, 319, 128, 22));
staffName.setBounds(new Rectangle(337, 298, 128, 22));
q.setText("Quantity");
q.setBounds(new Rectangle(275, 340, 63, 21));
cc.setText("Card Code");
cc.setBounds(new Rectangle(274, 320, 63, 21));
sn.setText("Staff Name");
sn.setBounds(new Rectangle(274, 298, 63, 21));
jScrollPane1.setBounds(new Rectangle(5, 38, 489, 243));
err.setBounds(new Rectangle(126, 281, 323, 15));
chart.addWindowListener(new XmasSalesFrame_f_windowAdapter(this));
this.add(displayCards);
this.add(displayBarChart);
this.add(sortPrintExit);
this.add(processSale);
this.add(clear);
this.add(quantity);
this.add(staffName);
this.add(cardCode);
this.add(sn);
this.add(cc);
this.add(q);
this.add(jScrollPane1);
this.add(err);
jScrollPane1.getViewport().add(salesInfo);
}
JButton displayCards = new JButton();
JButton displayBarChart = new JButton();
JButton sortPrintExit = new JButton();
JTextArea salesInfo = new JTextArea();
JButton processSale = new JButton();
JButton clear = new JButton();
JTextField quantity = new JTextField();
JTextField cardCode = new JTextField();
JTextField staffName = new JTextField();
JLabel q = new JLabel();
JLabel cc = new JLabel();
JLabel sn = new JLabel();
JScrollPane jScrollPane1 = new JScrollPane();
JLabel err = new JLabel();
private static JFrame chart = new JFrame();
private JFrame cards = new JFrame();
private NumberFormat f = NumberFormat.getInstance();
public void frame_windowClosing(WindowEvent e) {
System.out.println();
}
public void displayCards_actionPerformed(ActionEvent e) {
if (cards.getContentPane().getComponentCount() != 0)
cards.getContentPane().remove(0);
cards.setTitle("Cards");
cards.getContentPane().add(new CardFrame());
cards.setBounds(580, 460, 300, 170);
cards.repaint();
cards.setVisible(true);
}
public void displayBarChart_actionPerformed(ActionEvent e) {
chart.setTitle("Quantity of Sales Chart");
try {
chart.getContentPane().add(new ChartFrame());
} catch (Exception ex) {
err.setText(ex.getMessage());
}
chart.setBounds(580, 150, 300, 300);
chart.setVisible(true);
}
public void sortPrintExit_actionPerformed(ActionEvent e)
throws Exception {
PrintWriter fileOut = null;
try {
fileOut = new PrintWriter(new FileWriter("Sales.txt"));
String s = salesInfo.getText();
Print(s, fileOut);
} catch (IOException ex) {
err.setText(ex.getMessage());
}
File f = new File("n.html");
f.delete();
System.exit(1);
}
private void Print(String s, PrintWriter fileOut) {
StringTokenizer br = new StringTokenizer(s, "\n");
Bargain[] bargains = new Bargain[br.countTokens()];
int i = 0;
int total = 0;
while (br.hasMoreTokens()) {
String line = br.nextToken();
Bargain bargain = new Bargain(line);
bargains[i] = bargain;
i++;
}
Bargain.sort(bargains);
fileOut.println(" 圣诞卡销售统计");
fileOut.println(" ==========================");
String index, temp = "";
for (int j = 0; j < bargains.length; j++) {
index = bargains[j].getIndex();
if (!temp.equals(index)) {
if (j != 0) {
fileOut.println("================="
+ "=======================================");
double fee = total * (bargains[j - 1].getPrice());
f.setMinimumFractionDigits(2);
f.setMaximumFractionDigits(2);
String f1 = f.format(fee);
fileOut.println("总销量 : " + total + " " + " $ "
+ f1);
fileOut.println("=========================="
+ "==============================");
fileOut.println();
}
total = 0;
temp = index;
try {
fileOut.println(CardList.getCard(index).toString());
} catch (Exception ex) {
err.setText(ex.getMessage());
}
}
total += bargains[j].getQuantity();
fileOut.println(bargains[j].toString());
}
if (bargains.length != 0) {
fileOut
.println("========================================================");
fileOut.println("总销量 : " + total + " $ " + total
* (bargains[bargains.length - 1].getPrice()));
fileOut
.println("========================================================");
fileOut.println();
}
fileOut.close();
}
public void f_windowClosing(WindowEvent e) {
chart.setVisible(false);
}
public void processSale_actionPerformed(ActionEvent e) {
String sName = staffName.getText();
String cCode = cardCode.getText();
int cQuantity = 0;
if (quantity.getText() != null && !"".equals(quantity.getText())) {
err.setText("");
try {
cQuantity = Integer.parseInt(quantity.getText());
} catch (NumberFormatException ex) {
err.setText("Please insert digit at the 'Quantity'");
return;
}
} else {
err.setText("Please insert the quantity");
return;
}
try {
new Sale(sName, cCode, cQuantity);
} catch (Exception ex1) {
err.setText(ex1.getMessage());
return;
}
salesInfo.setText(SaleList.print());
}
public void clear_actionPerformed(ActionEvent e) {
staffName.setText("");
quantity.setText("");
cardCode.setText("");
}
public void setErr(String error) {
err.setText(error);
}
}
class XmasSalesFrame_clear_actionAdapter implements ActionListener {
private XmasSalesFrame adaptee;
XmasSalesFrame_clear_actionAdapter(XmasSalesFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.clear_actionPerformed(e);
}
}
class XmasSalesFrame_f_windowAdapter extends WindowAdapter {
private XmasSalesFrame adaptee;
XmasSalesFrame_f_windowAdapter(XmasSalesFrame adaptee) {
this.adaptee = adaptee;
}
public void windowClosing(WindowEvent e) {
adaptee.f_windowClosing(e);
}
}
class XmasSalesFrame_sortPrintExit_actionAdapter implements ActionListener {
private XmasSalesFrame adaptee;
XmasSalesFrame_sortPrintExit_actionAdapter(XmasSalesFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
try {
adaptee.sortPrintExit_actionPerformed(e);
} catch (Exception ex) {
}
}
}
class XmasSalesFrame_displayBarChart_actionAdapter implements ActionListener {
private XmasSalesFrame adaptee;
XmasSalesFrame_displayBarChart_actionAdapter(XmasSalesFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.displayBarChart_actionPerformed(e);
}
}
class XmasSalesFrame_displayCards_actionAdapter implements ActionListener {
private XmasSalesFrame adaptee;
XmasSalesFrame_displayCards_actionAdapter(XmasSalesFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.displayCards_actionPerformed(e);
}
}
class XmasSalesFrame_processSale_actionAdapter implements ActionListener {
private XmasSalesFrame adaptee;
XmasSalesFrame_processSale_actionAdapter(XmasSalesFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.processSale_actionPerformed(e);
}
}
class XmasSalesFrame_frame_windowAdapter extends WindowAdapter {
private XmasSalesFrame adaptee;
XmasSalesFrame_frame_windowAdapter(XmasSalesFrame adaptee) {
this.adaptee = adaptee;
}
public void windowClosing(WindowEvent e) {
File f = new File("n.html");
System.out.println(f.delete());
adaptee.frame_windowClosing(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -