📄 stat.java
字号:
package sun.com.stat;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.HashSet;
import java.util.Iterator;
import java.util.ResourceBundle;
import java.util.Set;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import sun.com.domain.Ship;
import sun.com.tool.ParesFiles;
public class Stat extends JFrame implements ActionListener{
JButton export;
JButton next;
String [][] table;
final String [] TITLE={"航次","业务","尺寸(英寸)","箱子","TEU","经营人"};
Container cc;
private JTable tabl;
private Vector<String> vTitle;
private String[][] vData;
private Set<String> voyage;
private Set<String> blno;
private Set<String> type;
private Set<String> operator;
Vector<Vector<String>> v;//返回汇总后的数据
Vector<Ship> parefile;
File file=null;
//构造方法
public Stat(String[][] vData,File file){
this.setBounds(200,100,500, 250);
cc= this.getContentPane();
// this.setDefaultCloseOperation(EXIT_ON_CLOSE);
try {
ParesFiles pare=new ParesFiles();
parefile=pare.pareFile(file);
} catch (Exception e) {
e.printStackTrace();
}
JPanel jtab=new JPanel();
export=new JButton("Export file");
next=new JButton("Next");
jtab.add(export);
jtab.add(next);
cc.add(jtab,BorderLayout.SOUTH);
export.addActionListener(this);
next.addActionListener(this);
this.vData=vData;
this.parefile=parefile;
this.file=file;
v=statistic();
JTable jtable=createListTable(v);
JScrollPane js=new JScrollPane(jtable);
cc.add(js);
this.setVisible(true);
export.addActionListener(this);
next.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource().equals(export)){
JFileChooser j=new JFileChooser("d:\\");
int value=j.showSaveDialog(this);
if(value==0){
File file=j.getSelectedFile();
try{
PrintWriter pw=new PrintWriter(file);
pw.println(v.get(1));
pw.flush();
}catch(FileNotFoundException e1){
}
}
}
if(e.getSource().equals(next)){
this.dispose();
}
}
private Vector<Vector<String>> statistic() {
Vector<Vector<String>> vv=new Vector<Vector<String>>(1,0);
vv.trimToSize();
voyage=new HashSet<String>();//
blno=new HashSet<String>();//提单
type=new HashSet<String>();//类型
operator=new HashSet<String>();//经营人
int m=0;
int n=0;
System.out.println(vData.length+"date大小");
Vector<String> v=new Vector<String>();
for(int i=0;i<vData.length;i++){
voyage.add(vData[i][1]);
blno.add(vData[i][2]);
type.add(vData[i][4]);
operator.add(vData[i][7]);
m+=Integer.parseInt(vData[i][6]);
ResourceBundle rb = ResourceBundle.getBundle("sun.com.config.box");
Set<String> sizeList = rb.keySet();
String[] box=null;
String s=vData[i][4];
box=s.split("\n");
// System.out.println(parefile.get(0).getBox().get(0).getCntsize()+"是啥子哦");
try{
// Iterator<String> its = sizeList.iterator();
// while(its.hasNext()){
// String boxs=its.next();
// if(boxs.equals("GP")|boxs.equals("GH")|boxs.equals("RF")|boxs.equals("RH")){
// System.out.println(boxs+"箱子");
if(rb.getString(parefile.get(i).getBox().get(0).getCntsize()).equals("TEU")){//箱量
n+=Integer.parseInt(vData[i][6]);
}
// }
// }
}catch(Exception e){}
}
// v.add("航次(次)");
// String[] v={};
v.add("航次:"+voyage.size());
// v[1]=voyage.size()+"";//航次
vv.add(v);
// v=new Vector<String>();
// v.add("业务");
v.add("提单数:"+blno.size()+"");
vv.add(v);
// v=new Vector<String>();
// v.add("箱型尺寸(寸)");
// v.add("");
// vv.add(v);
Iterator it=type.iterator();
StringBuffer b=new StringBuffer();
while(it.hasNext()){
// v=new Vector<String>();
String str=(String)it.next();//箱子的类型
// v.add(str+"寸");
System.out.println(str+"箱形");
int num=0;
for(int i=0;i<vData.length;i++){
if(str.equals(vData[i][4]))num+=Integer.parseInt(vData[i][6]);
}
// v.add(str+"(寸)"+":"+num+"个");
b.append(str+":").append(num+"|");
// vv.add();
}
v.add("箱形:"+b.toString());
vv.add(v);
// v=new Vector<String>();
// v.add("箱量");
v.add("数量:"+m+"个");
vv.add(v);
// v=new Vector<String>();
// v.add("TEU");
v.add(n+"个");
vv.add(v);
// v=new Vector<String>();
// v.add("经营人");
// v.add("");
// vv.add(v);
it=operator.iterator();//经营人
StringBuffer bp=new StringBuffer();//用于经营人的添加
while(it.hasNext()){//遍历经营人
// v=new Vector<String>();
// v.add(str);
String str=(String)it.next();
int num=0;
for(int i=0;i<vData.length;i++){
if(str.equals(vData[i][7]))num+=Integer.parseInt(vData[i][6]);
}
bp.append(str+":").append(num+"|");
}
v.add("经营人:"+bp.toString());
vv.add(v);
for(int i=vv.size();i<1;i--){
vv.remove(i);
}
return vv;
}
public JTable createListTable(Vector<Vector<String>> vData){//返回一个table
vTitle=new Vector<String>();
// vTitle.add("统计条目");
// vTitle.add("统计结果");
vTitle.add("航次");
vTitle.add("业务票");
vTitle.add("箱形尺寸");
vTitle.add("箱量");
vTitle.add("TEU");
vTitle.add("经营人");
return new JTable(vData,vTitle);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -