LogWindow.java 2.68 KB
package cryptor;

import javax.swing.*;
import javax.swing.filechooser.FileView;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.security.GeneralSecurityException;
import java.text.SimpleDateFormat;
import java.util.Date;

class LogWindow extends Frame {

    String fileIn;

    String fileName;

    String userId;

    String userPW;


    LogWindow(String title, String ID, String PW){

        //Frame(String title)을 호출한다.

        super(title);

        userId = ID;
        userPW = PW;

        //Label의 text정렬을 오른쪽으로
        String folderDir = ".\\" + userId + "\\logs";

        final File dirToLock = new File(folderDir);
        if(!dirToLock.exists())
        {
            JOptionPane.showMessageDialog(null,"No files have been encrypted!");
            return;
        }
        JFileChooser jfc = new JFileChooser(dirToLock);
        jfc.setFileView(new FileView() {
            @Override
            public Boolean isTraversable(File f) {
                return dirToLock.equals(f);
            }
        });

        jfc.showOpenDialog(null);
        fileIn = jfc.getSelectedFile().getAbsolutePath();
        fileName = jfc.getSelectedFile().getName();

        String passwd2 = userId + ' ' + userPW;
        char[] password2 = passwd2.toCharArray();

        String dir = fileIn.substring(0, fileIn.lastIndexOf('.')) + ".txt";
        File file = new File(dir);
        file.getParentFile().mkdir();
        try {
            file.createNewFile();
        } catch (IOException ioException) {
            ioException.printStackTrace();
        }

        try {
            Cryptor.decrypt(fileIn, dir, password2);
        } catch (IOException ioException) {
            ioException.printStackTrace();
        } catch (GeneralSecurityException generalSecurityException) {
            generalSecurityException.printStackTrace();
        }

        try {
            if(file.exists())
            {
                Desktop.getDesktop().open(file);
            }
        } catch (IOException ioException) {
            ioException.printStackTrace();
        }

        try {
            Thread.sleep(1000);
        } catch (InterruptedException interruptedException) {
            interruptedException.printStackTrace();
        }
        file.delete();
    }

    public static void main(String args[]){

        LogWindow f = new LogWindow("Login", "user1", "12345678");

    }



    class EventHandler implements ActionListener{

        public void actionPerformed(ActionEvent e){
            dispose();
        }

    }

}