如何在java swing中复制按钮中添加复制功能

时间:2013-03-03 07:34:51

标签: java swing copy

我正在使用java swing执行从一个位置复制到另一个位置的代码。我在这里为Browse做了。但我不知道如何添加复制按钮的功能。请帮我解释一下代码。提前致谢。这是我的完整代码。 (对不起,如果我错了,我第一次使用这个)

/*
 For Browse button. 
 */
package com.design;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JTextField;

public class Browse extends JFrame implements 

ActionListener {

JButton button1, button2 ;
JTextField field1, field2;

public Browse () {
this.setLayout(null);

button1 = new JButton("Browse");
field1 = new JTextField();

field1.setBounds(30, 50, 200, 25);
button1.setBounds(240, 50, 100, 25);
this.add(field1);
this.add(button1);

button2 = new JButton("Copy");
button2.setBounds(150, 150, 100, 25);
this.add(button2);

button1.addActionListener(this);
setDefaultCloseOperation

(javax.swing.WindowConstants.EXIT_ON_CLOSE

);



}

public void actionPerformed(ActionEvent e) {
Chooser frame = new Chooser();
field1.setText(frame.fileName);

}

public static void main(String args[]) {

Browse frame = new Browse ();
frame.setSize(400, 300);
frame.setLocation(200, 100);
frame.setVisible(true);


}
}

class Chooser extends JFrame {

JFileChooser chooser;
String fileName;

public Chooser() {
chooser = new JFileChooser();
int r = chooser.showOpenDialog(new JFrame());
if (r == JFileChooser.APPROVE_OPTION) {
fileName = chooser.getSelectedFile().getPath();
System.out.println(fileName);
}
}
}

1 个答案:

答案 0 :(得分:1)

这是使用Java 7复制文件的代码段

try {
    Files.copy(new File(your_source_file).toPath(), new File(your_target_file).toPath(), StandardCopyOption.REPLACE_EXISTING);
} catch (IOException e) {
    e.printStackTrace();
}

但是,我不确定它是否也支持java 6和以前的版本,因此这是一个“diy”代码段,可以与所有Java版本一起使用,如果文件已被复制,则返回truefalse如果抛出一些异常:

public boolean copyfile(String sourceFile, String targetFile) {
   try {
      File f1 = new File(sourceFile);
      File f2 = new File(targetFile);
      InputStream in = new FileInputStream(f1);

      //Write to the new file
      OutputStream out = new FileOutputStream(f2);

      byte[] buf = new byte[1024];
      int len;
      while ((len = in.read(buf)) > 0) {
         out.write(buf, 0, len);
      }
      in.close();
      out.close();
      System.out.println("File copied.");
   } catch (Exception ex) {
      ex.printStackTrace();
      return false;
   }
   return true;
}

希望这有帮助