|
@ -0,0 +1,121 @@ |
|
|
|
|
|
package mywindow.antoniofrische; |
|
|
|
|
|
|
|
|
|
|
|
import java.awt.EventQueue; |
|
|
|
|
|
import java.awt.event.ActionEvent; |
|
|
|
|
|
import java.awt.event.ActionListener; |
|
|
|
|
|
import java.io.File; |
|
|
|
|
|
import java.io.FileInputStream; |
|
|
|
|
|
import java.io.FileOutputStream; |
|
|
|
|
|
import java.io.IOException; |
|
|
|
|
|
|
|
|
|
|
|
import javax.swing.JFrame; |
|
|
|
|
|
import javax.swing.JTextField; |
|
|
|
|
|
import javax.swing.JProgressBar; |
|
|
|
|
|
import javax.swing.JButton; |
|
|
|
|
|
import javax.swing.JLabel; |
|
|
|
|
|
|
|
|
|
|
|
public class MyWindow implements ActionListener{ |
|
|
|
|
|
|
|
|
|
|
|
private JFrame frame; |
|
|
|
|
|
private JTextField tfInput; |
|
|
|
|
|
private JTextField tfNewName; |
|
|
|
|
|
private JProgressBar pbCopy; |
|
|
|
|
|
private static JButton btnCopy; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* Launch the application. |
|
|
|
|
|
*/ |
|
|
|
|
|
public static void main(String[] args) { |
|
|
|
|
|
EventQueue.invokeLater(new Runnable() { |
|
|
|
|
|
public void run() { |
|
|
|
|
|
try { |
|
|
|
|
|
MyWindow window = new MyWindow(); |
|
|
|
|
|
window.frame.setVisible(true); |
|
|
|
|
|
btnCopy.addActionListener(window); |
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
e.printStackTrace(); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* Create the application. |
|
|
|
|
|
*/ |
|
|
|
|
|
public MyWindow() { |
|
|
|
|
|
initialize(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* Initialize the contents of the frame. |
|
|
|
|
|
*/ |
|
|
|
|
|
private void initialize() { |
|
|
|
|
|
frame = new JFrame(); |
|
|
|
|
|
frame.setBounds(100, 100, 450, 300); |
|
|
|
|
|
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); |
|
|
|
|
|
frame.getContentPane().setLayout(null); |
|
|
|
|
|
|
|
|
|
|
|
tfInput = new JTextField(); |
|
|
|
|
|
tfInput.setBounds(65, 44, 279, 20); |
|
|
|
|
|
frame.getContentPane().add(tfInput); |
|
|
|
|
|
tfInput.setColumns(10); |
|
|
|
|
|
|
|
|
|
|
|
tfNewName = new JTextField(); |
|
|
|
|
|
tfNewName.setBounds(65, 98, 279, 20); |
|
|
|
|
|
frame.getContentPane().add(tfNewName); |
|
|
|
|
|
tfNewName.setColumns(10); |
|
|
|
|
|
|
|
|
|
|
|
pbCopy = new JProgressBar(); |
|
|
|
|
|
pbCopy.setBounds(39, 203, 339, 14); |
|
|
|
|
|
frame.getContentPane().add(pbCopy); |
|
|
|
|
|
|
|
|
|
|
|
btnCopy = new JButton("Hacer copia"); |
|
|
|
|
|
btnCopy.setBounds(65, 143, 117, 23); |
|
|
|
|
|
frame.getContentPane().add(btnCopy); |
|
|
|
|
|
|
|
|
|
|
|
JLabel lblNewLabel = new JLabel("Ruta del FIchero a copiar"); |
|
|
|
|
|
lblNewLabel.setBounds(65, 21, 135, 14); |
|
|
|
|
|
frame.getContentPane().add(lblNewLabel); |
|
|
|
|
|
} |
|
|
|
|
|
public void actionPerformed(ActionEvent e) { |
|
|
|
|
|
boolean copy = copiarArch(); |
|
|
|
|
|
if(copy) { |
|
|
|
|
|
//anything |
|
|
|
|
|
}else { |
|
|
|
|
|
//anything |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private boolean copiarArch() { |
|
|
|
|
|
String inputFile = tfInput.getText().toString(); |
|
|
|
|
|
String newName = tfNewName.getText().toString(); |
|
|
|
|
|
String[]spliter = inputFile.split("[.]"); |
|
|
|
|
|
File input = new File(inputFile); |
|
|
|
|
|
File output = new File(input.getParent(),newName + ".txt"); |
|
|
|
|
|
|
|
|
|
|
|
try(FileInputStream in = new FileInputStream(input); |
|
|
|
|
|
FileOutputStream out = new FileOutputStream(output); |
|
|
|
|
|
){ |
|
|
|
|
|
byte[] complet = in.readAllBytes(); |
|
|
|
|
|
|
|
|
|
|
|
for(int i = 0; i < complet.length; i++) { |
|
|
|
|
|
Thread.sleep(500); |
|
|
|
|
|
out.write(complet[i]); |
|
|
|
|
|
pbCopy.setValue(i); |
|
|
|
|
|
pbCopy.update(pbCopy.getGraphics()); |
|
|
|
|
|
} |
|
|
|
|
|
pbCopy.setValue(100); |
|
|
|
|
|
pbCopy.update(pbCopy.getGraphics()); |
|
|
|
|
|
return true; |
|
|
|
|
|
}catch(NullPointerException npe) { |
|
|
|
|
|
//impremir que el archivo no existe! |
|
|
|
|
|
return false; |
|
|
|
|
|
}catch(IOException ioe) { |
|
|
|
|
|
return false; |
|
|
|
|
|
} catch (InterruptedException e) { |
|
|
|
|
|
// TODO Auto-generated catch block |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |