⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stat.java

📁 一个java开发的海运系统
💻 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 + -