MainMenu.java 2.67 KB
package cryptor;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
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 MainMenu extends Frame {

    Button bRegister;

    Button bOpen;

    Button bViewLog;

    Button bDelete;

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

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

        super(title);

        addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                String folderDir = ".\\" + ID + "\\Decrypted";
                File folder = new File(folderDir);
                deleteDirectory(folder, ID, PW);

                dispose();
                System.exit(0);
            }
        });

        bRegister = new Button("Register Files");

        bOpen = new Button("Open Encrypted Files");

        bViewLog = new Button("View Logs");

        bDelete = new Button("Delete Encrypted Files");

        //OK버튼과 TextField에 이벤트처리를 위한 Listener를 추가해준다.

        bRegister.addActionListener(e -> {
            EncryptWindow f = new EncryptWindow(title, ID, PW);
        });

        bOpen.addActionListener(e -> {
            DecryptWindow f = new DecryptWindow(title, ID, PW);
        });

        bViewLog.addActionListener(e -> {
            LogWindow f = new LogWindow(title, ID, PW);
        });

        bDelete.addActionListener(e -> {
            DeleteEncypted f = new DeleteEncypted(title, ID, PW);
        });

        //LayoutManager를 FlowLayout으로

        setLayout(new GridLayout(4,1));

        //생성한 component들을 Frame에 포함시킨다.

        add(bRegister);

        add(bOpen);

        add(bViewLog);

        add(bDelete);

        setSize(450,400);

        this.setLocationRelativeTo(null);

        //화면이 보이게 한다.

        setVisible(true);
    }

    public static void main(String args[]){
        MainMenu f = new MainMenu("Main", "user1", "12345678");
    }

    public static boolean deleteDirectory(File path, String userId, String userPW) {
        if(!path.exists()) {
            return false;
        }
        File[] files = path.listFiles();
        for (File file : files) {
            if (file.isDirectory()) {
                deleteDirectory(file, userId, userPW);
            } else {
                file.delete();
            }
        }
        return path.delete();
    }
}