- 浏览: 82156 次
- 性别:
- 来自: 重庆
最新评论
-
lihua2008love:
为什么报javax.imageio.IIOException: ...
图片加水印JAVA实现 -
dearhwj:
我整理了一些我常用的Eclipse插件http://www.d ...
eclipse 常用插件 -
javay:
谢谢。
图片加水印JAVA实现 -
hailanc1108:
不错,谢谢啦.
图片加水印JAVA实现 -
elf8848:
我看了, 很好, 但水印不是半透明的
图片加水印JAVA实现
package jp.swtech; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.io.FileInputStream; import java.io.RandomAccessFile; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import java.nio.channels.FileChannel.MapMode; import java.util.Date; import javax.swing.Box; import javax.swing.DefaultListModel; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextField; import javax.swing.SwingUtilities; import javax.swing.UIManager; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; public class FileCopyTool extends JFrame { private static final long serialVersionUID = -2279866387292940681L; private String pathDest = ""; private String pathSrc = ""; private DefaultListModel model = null; public FileCopyTool(){ super(); setSize(250,400); initComponents(); } private void initComponents(){ JPanel panel = new JPanel(); panel.setLayout(new BorderLayout()); panel.setBounds(10, 10, 10, 10); JLabel lblDest = new JLabel("目标路径:"); txtDest = new JTextField(30); btnClear = new JButton("清空"); btnClear.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { File[] fs = new File(pathDest).listFiles(); for(File f : fs){ f.delete(); } }}); btnCopy = new JButton("拷贝"); btnCopy.addActionListener(new BtnCopyAction()); Box box = Box.createHorizontalBox(); box.add(lblDest); box.add(Box.createHorizontalStrut(5)); box.add(txtDest); box.add(Box.createHorizontalStrut(5)); box.add(btnClear); box.add(btnCopy); panel.add(box,BorderLayout.NORTH); JLabel lblSrc = new JLabel("源路径:"); txtSrc = new JTextField(30); btnLoad = new JButton("加载文件"); btnLoad.addActionListener(new BtnLoadAction()); box = Box.createHorizontalBox(); box.add(lblSrc); box.add(Box.createHorizontalStrut(5)); box.add(txtSrc); box.add(Box.createHorizontalStrut(5)); box.add(btnLoad); panel.add(box,BorderLayout.SOUTH); model = new DefaultListModel(); fileList = new JList(model); fileList.addListSelectionListener(new SelectionListener()); panel.add(new JScrollPane(fileList),BorderLayout.CENTER); add(panel); setResizable(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); } catch (Exception e) { e.printStackTrace(); } SwingUtilities.updateComponentTreeUI(this); } private class SelectionListener implements ListSelectionListener{ public void valueChanged(ListSelectionEvent e) { JList lst = (JList)e.getSource(); pathSrc = txtSrc.getText().trim() + File.separator + lst.getSelectedValue(); System.out.println("当前拷贝路径" + pathSrc); } } private class BtnLoadAction implements ActionListener{ public void actionPerformed(ActionEvent e) { try { model.removeAllElements(); pathDest = txtDest.getText().trim(); pathSrc = txtSrc.getText().trim(); if(checked()){ File file = new File(pathSrc); File[] files = file.listFiles(); for(File f : files) model.addElement(f.getName()); } } catch (Exception e1) { show("读取源目录发生异常!"); } } } private class BtnCopyAction implements ActionListener{ public void actionPerformed(ActionEvent e) { if(checked()){ try { for(File f : new File(pathDest).listFiles()){ if(f.isFile()) f.delete(); } File fs = new File(pathSrc); if(fs.isFile()){ File toFile = new File(pathDest + File.separator + fs.getName()); forImage(fs,toFile); return; } File[] files = fs.listFiles(); for(File f : files){ if(!f.isFile()) return; File toFile = new File(pathDest + File.separator + f.getName()); forImage(f,toFile); } show("复制文件成功!"); } catch (Exception e1) { show("复制文件的时候发生异常!"); } } } } private boolean checked(){ if(pathDest.equals("")){ show("目标路径不能为空"); return false; } if(pathSrc.equals("")){ show("源路径不能为空"); return false; } return true; } private void show(String msg){ JOptionPane.showMessageDialog(this, msg,"错误",JOptionPane.ERROR_MESSAGE); } /** * @param args */ public static void main(String[] args) { FileCopyTool fct = new FileCopyTool(); fct.setVisible(true); } public static long forImage(File f1, File f2) throws Exception { long time = new Date().getTime(); int length = 2097152; FileInputStream in = new FileInputStream(f1); RandomAccessFile out = new RandomAccessFile(f2, "rw"); FileChannel inC = in.getChannel(); MappedByteBuffer outC = null; MappedByteBuffer inbuffer = null; byte[] b = new byte[length]; while (true) { if (inC.position() == inC.size()) { inC.close(); outC.force(); out.close(); return new Date().getTime() - time; } if ((inC.size() - inC.position()) < length) { length = (int) (inC.size() - inC.position()); } else { length = 20971520; } b = new byte[length]; inbuffer = inC.map(MapMode.READ_ONLY, inC.position(), length); inbuffer.load(); inbuffer.get(b); outC = out.getChannel().map(MapMode.READ_WRITE, inC.position(), length); inC.position(b.length + inC.position()); outC.put(b); outC.force(); out.close(); in.close(); } } JButton btnCopy = null; JTextField txtDest = null; JTextField txtSrc = null; JList fileList = null; JButton btnLoad = null; JButton btnClear = null; }
发表评论
-
设计模式备忘录
2012-02-27 23:11 872创建型模式 1.抽 ... -
随机生成指定长度的全半角日文假名
2009-09-16 21:48 2752package cn.com.oneslife; ... -
javadoc参数
2009-06-19 18:44 1529生成javadoc的时候添加的参数,不然中文会出现乱码! -
Hibernate中Criteria总结(一)
2009-05-31 00:47 1376复合查询主要是处理,具有关联关系的两个实体怎样进行关联查询, ... -
eclipse 常用插件
2009-05-03 01:27 1545SVN Explain: 版本控制插件 Home Page: ... -
Spring+Hibernate延迟加载测试基类
2009-04-22 03:17 1318package cn.com.oneslife; imp ... -
Spring2.5 及 Hibernate Annotation 配置文件笔记
2009-04-21 19:18 12481. web.xml 配置 <context-pa ... -
hibernate annotation
2009-04-21 18:14 979hibernate提供了hibernate ann ... -
MD5算法
2009-04-18 04:01 892Java版本 import java.security.Me ... -
利用struts拦截器实现简单的权限验证
2009-04-17 18:25 1436package cn.com.oneslife.interce ... -
Spring 2.5 典型配置
2009-04-14 19:15 1022<?xml version="1.0&qu ... -
Java 术语表
2009-04-07 02:02 1009Java术语表 英文 中文 acces ... -
Spring Security 2 配置精讲
2009-04-05 23:42 1021downpour 写道论坛上看了 ... -
Spring2.5注释语法
2009-04-04 02:41 1681Spring的IoC public class Foo {① ... -
用Spring AOP实现松散耦合
2009-04-04 01:23 842摘 要 面向方面编程(AO ... -
将HQL以及参数加载到Query实例中
2009-04-03 18:43 1347package cn.com.oneslife.dao; ... -
[转]string和stringbuffer的区别
2009-03-02 16:14 851看JAVA源代码,发现了str ... -
Hibernate 的数据加载方式
2008-12-24 13:35 6841.即时加载(Immediate Loading)当实体加载完 ... -
数独游戏网址
2007-08-13 17:35 1137http://www.sudoku.name/index-cn ... -
图片加水印JAVA实现
2007-08-13 17:12 8711java 代码 import java.awt. ...
相关推荐
大名鼎鼎的小文件拷贝工具,多线程拷贝速度非常快,微软公司出的
Fastcopy是日本的最快的文件拷贝工具。磁盘间相互拷贝文件是司空见惯的事情,通常情况都是利用WINDOWS自带的复制粘贴功能来实现的。这样做在数目较小的情况下倒也没什么问题,但是数目较大时,系统自带的复制功能就...
QT开发基于QT开发的文件拷贝工具.zipQT开发基于QT开发的文件拷贝工具.zipQT开发基于QT开发的文件拷贝工具.zipQT开发基于QT开发的文件拷贝工具.zipQT开发基于QT开发的文件拷贝工具.zipQT开发基于QT开发的文件拷贝工具...
经测试,一个424MB的电影其拷贝时间仅为 21 秒,传输速度达到了21MB/秒,不知比TotalCopy之流快了多少倍,所以,在这里我不吝惜自己的赞美,把“最快的文件拷贝工具”这个桂冠送给它,如果你发现还有比它更快的,烦...
硬盘写入数据,无损工具,确保copy的数据完全没有变化
Fastcopy是日本的最快的文件拷贝工具。磁盘间相互拷贝文件是司空见惯的事情,通常情况都是利用WINDOWS自带的复制粘贴功能来实现的。这样做在数目较小的情况下倒也没什么问题,但是数目较大时,系统自带的复制功能就...
一个不错的文件拷贝工具 一个不错的文件拷贝工具 一个不错的文件拷贝工具
一个多线程的文件拷贝工具的实现,文件操作接口使用了内存映射模型的方式实现,可以指定线程数量,可以在拷贝过程中查看整体的进度信息(进度、速度、剩余时间、已用时间),同时可以查看每个子线程对应的进度信息。...
文件拷贝工具,绿色版,FastCopy,很好用的工具,文件拷贝工具,绿色版,FastCopy,很好用的工具,
VB版U盘文件拷贝工具uFileSys,可做文件监控程序
功能强大的文件拷贝工具类 复制文件 @author:heyuelin 2011-01-06 @param srcFile 源文件File @param destDir 目标目录File @param isClone true:将按照源文件目录拷贝,false:将提取出文件拷贝到...
快速拷贝大文件工具,适合大文件的转储操作。
Fastcopy最快的文件拷贝工具,速度很快
最快的文件拷贝工具
著名的单机文件拷贝工具,单机测试速度可达21M左右,完全可以取代Windows中的复制、粘贴功能
一个强大的文件拷贝工具,一个可以实现拷贝坏区文件、合并文件、测试文件拷贝速度的有效工具。它可以将你的数据损失减少到最低点,把你具有坏区的文件里的安全数据一点一点的拷贝出来,甚至可以微调定位,并精确到...
至今为止,我用过的最快的文件拷贝工具,绝不忽悠
最快的文件拷贝工具Fastcopy V1.83 Final绿色版