zoukankan      html  css  js  c++  java
  • 第十一周总结

    源代码:
    1.压缩文件:

    
    package javaio;
    import java.io.*;
    import java.util.zip.ZipOutputStream;
    import java.util.zip.*;
    public class MyZip {
    	private void zip(String zipFileName,File inputFile)throws Exception{
    		ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));
    		zip(out,inputFile,"");
    		System.out.println("压缩中......");
    		out.close();	
    	}
    	private void zip(ZipOutputStream out,File f,String base)throws Exception{
    		if(f.isDirectory()) {
    			File[] fl = f.listFiles();
    			if(base.length()!=0) {
    				out.putNextEntry(new ZipEntry(base +"/"));
    			}
    			for(int i = 0 ; i<base.length();i++) {
    				zip(out,fl[i],base+fl[i]);
    			}
    		}
    			else {
    				out.putNextEntry(new ZipEntry(base));
    				FileInputStream in = new FileInputStream(f);
    				int b ;
    				System.out.println("base");
    				while((b=in.read())!=-1) {
    					out.write(b);
    				}
    				in.close();
    				}
    	}
    	public static void main(String[] temp) {
    		MyZip book = new MyZip();
    		try {
    			book.zip("F:/mr.zip", new File("F:/test/"));
    			System.out.println("压缩完成");
    			
    		}catch(Exception ex) {
    			ex.printStackTrace();
    		}
    	}
    }
    
    

    2.解压文件:

    
    package javaio;
    
    import java.io.*;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipFile;
    import java.util.zip.ZipInputStream;
    
    
    public class Decompressing {
    	public static void main(String[] temp) {
    		File file = new File("F:/mr.zip");
    		ZipInputStream zin;
    		try {
    			ZipFile zipFile = new ZipFile(file);
    			zin = new ZipInputStream(new FileInputStream(file));
    			ZipEntry entry =  zin.getNextEntry();
    			while(((entry = zin.getNextEntry())!=null) && !entry.isDirectory()){
    				File tmp = new File("D:/"+entry.getName());
    				if(!tmp.exists()) {
    					tmp.getParentFile().mkdirs();
    					OutputStream os = new FileOutputStream(tmp);
    					
    					InputStream in = zipFile.getInputStream(entry);
    					int count = 0;
    					while((count = in.read())!=-1) {
    						os.write(count);
    					}
    					os.close();
    					in.close();
    					}
    				zin.closeEntry();
    				System.out.println(entry.getName()+"解压成功");
    			}
    			zin.close();
    		}catch(Exception e)
    		{
    			e.printStackTrace();
    		}	
    	}
    }
    
    

    可滚动的表格:

    
    
    package javaswing;
    
    import javax.swing.*;
    import java.awt.*;
    
    
    
    
    public class JTable_JScrollPane_test extends JFrame{
    	public static void main(String args[]) {
    		JTable_JScrollPane_test frame = new JTable_JScrollPane_test();
    		frame.setVisible(true);
    	}
    	public JTable_JScrollPane_test() {
    		super();
    		setTitle("创建可以滚动的表格");
    		setBounds(100,100,240,150);
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		String[] columnNames = {"A","B"};
    		String[][] tableValues ={ {"A1","B1"},{"A2","B2"},{"A3","B3"},{"A4","B4"},{"A5","B5"},{"A6","B6"}};
    		JTable table = new JTable(tableValues,columnNames);
    		JScrollPane scrollPane = new JScrollPane(table);
    		getContentPane().add(scrollPane,BorderLayout.CENTER);
    	}
    
    }
    
    
    

    运行截图:



    学习总结:
    Swing 高级组件
    Swing 还提供了一些高级组件,如分割面板、选项卡面板、菜单、工具栏和文件选择器,以及进度条、表格等,还有为程序添加快捷操作等。
    一、高级面板组件
    1、JSplitPane 分割面板
    分割面板由 javax.swing.JSplitPane 类实现,用来将其所在的区域分割成两部分,可以根据需要决定是水平分割还是垂直分割。

    两部分之间存在一个分隔条,通过调整分隔条的位置,可以改变这两部分的相对大小。

    JSplitPane 类的常用构造方法如下表:

    构造方法 说明
    JSplitPane() 创建一个默认的分割面板;默认情况下会在水平方向上进行分割,重绘方式只在调整分隔条位置完成时重绘。
    JSplitPane(int newOrientation) 创建一个按照指定方向分割的分割面板。入口参数 newOrientation 的可选静态常量有 HORIZONTAL_SPLIT(在水平方向分割)和 VERTICAL_SPLIT (在垂直方向分割)
    JSplitPane(int newOrientation,boolean newContinuousLayout) 创建一个按照指定方向分割,并且按照指定方式重绘分割面板。如果将入口参数newContinuousLayout 设置为 true,表示在调整分隔条位置的过程中连续重绘,设为 false 则表示只在调整分割条位置完成时重绘。

    JSplitPane 类的常用方法如下表:

    方法 说明
    setOrientation(int orientation) 设置面板的分割方向,即水平分割(默认)还是垂直分割
    setDividerLocation(int location) 设置分隔条的绝对位置,即分隔条左侧(水平分割)的宽度或上方(垂直分割)的高度
    setDividerLocation(double proportionalLocation) 设置分隔条的相对位置,即分隔条左侧或上方的大小与分割面板大小的百分比
    setDividerSize(int newSize) 设置分隔条的宽度,默认为 5 像素
    setLeftComponent(Component comp) 将组件设置到分隔条的左侧或上方
    setTopComponent(Component comp) 将组件设置到分隔条的上方或左侧
    setRightComponent(Component comp) 将组件设置到分隔条的右侧或下方
    setBottomComponent(Component comp) 将组件设置到分隔条的下方或右侧
    setOneTouchExpandable(boolean newValue) 设置分割面板是否提供 UI 小部件。设置为 true 表示提供,有些外观不支持该功能,这时将忽略该设置;设为 false 表示不提供,默认为不提供
    setContinousLayout(boolean newContinuousLayout) 设置调整分隔条位置时面板的重绘方式。设为 true 表示在调整过程中连续重绘,设为 false 则表示只在调整完成时重绘
  • 相关阅读:
    02. 爬取get请求的页面数据
    配置visual studio code进行asp.net core rc2的开发(转载jeffreywu)
    C#条件编译,发布多平台和多种选择性的项目
    控制台当前行显示进度条,不换行
    对"使用Mono Runtime Bundle制作安装包让C#桌面应用程序脱离net framework"增加说明
    ASP.NET Core文章汇总
    jquery.tmpl 用法(附上详细案例)
    Pure扩展站--个人博客
    使用@media做自适应
    简单的计划任务实现。。。
  • 原文地址:https://www.cnblogs.com/xudo/p/11823543.html
Copyright © 2011-2022 走看看