将程序(写入文件)转换为GUI

时间:2015-04-27 15:11:46

标签: java user-interface

我的程序运行良好,接下来,我想把它变成一个GUI。我有一个菜单:

    System.out.println("Menu: ");
    System.out.println("1) Enter Student Grade(s)");
    System.out.println("2) View Student Grade(s)");
    System.out.println("3) Delete Student Grade(s)");
    System.out.println("4) Exit");

我不确定如何将其实现到GUI中。我可能有4个文本字段:名字,姓氏,单位和标记。我可以有一个要删除的按钮,还有一个用于打开“GradeEnter.txt”按钮的按钮。文件或许。同样,我不确定如何将其实现到单独的GUI类中。谁能帮助或让我入手?感谢

代码:

import java.io.BufferedWriter;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;


public class ExamGrades {
    private static int menu = 0;
    private static String firstName = "";
    private static String firstNameDelete = "";
    private static String lastName = "";
    private static String lastNameDelete = "";
    private static String unit = "";
    private static int examMark = 0;
    private static String entry = "";
    private static String firstCap = "";
    private static String surCap = "";
    private static Scanner scan = new Scanner(System.in);
    public static BufferedWriter bw;
    public static BufferedReader reader;
    public static PrintWriter out;
    public static File deleteRecord;

    public static void setup() {
        reader = null;
        File deleteRecord = new File("GradeEnter.txt");
        try {
            reader = new BufferedReader(new FileReader(deleteRecord));
        } catch (FileNotFoundException e1) {
            System.err.println("No file found");
        }
        FileWriter grades = null;
        try {
            grades = new FileWriter("GradeEnter.txt",true);
        } catch (IOException e) {
            e.printStackTrace();
        }
        BufferedWriter bw = new BufferedWriter(grades);
        out = new PrintWriter(bw);
    }

    public static void menuActions()
    {
        System.out.println("Menu: ");
        System.out.println("1) Enter Student Grade(s)");
        System.out.println("2) View Student Grade(s)");
        System.out.println("3) Delete Student Grade(s)");
        System.out.println("4) Exit");
        menu = scan.nextInt();
        switch(menu) {
        case 1:
            enterGrades();
            break;
        case 2:
            viewGrades();
            break;
        case 3:
            deleteGrades();
            break;
        case 4:
            exitProgram();
            break;
        default:
            menuActions();
        }
    }

    public static void enterGrades()
    {
        System.out.print("Please enter student first name: ");
        firstName = scan.next(); 

        while(!firstName.matches("[-a-zA-Z]*"))
        {
            System.out.print("Please enter a valid first name: ");
            firstName = scan.next(); 
        }
        firstCap = firstName.substring(0,1).toUpperCase() + firstName.substring(1);


        System.out.print("Please enter student surname: ");
        lastName = scan.next();

        while(!lastName.matches("[-a-zA-Z]*"))
        {
            System.out.print("Please enter a valid surname: ");
            lastName = scan.next();
        }
        surCap = lastName.substring(0,1).toUpperCase() + lastName.substring(1);

        System.out.print("Please select Subject Unit: "); 
        unit = scan.next();

        System.out.print("Please enter student mark: ");
        while (!scan.hasNextInt())
        {
            System.out.print("Please enter a valid mark: ");
            scan.next();
        }
        examMark = scan.nextInt();

        if (examMark < 40)
        {
            System.out.println("Failed");
        }
        else if (examMark >= 40 && examMark <= 49)
        {
            System.out.println("3rd");
        }
        else if (examMark >= 50 && examMark <= 59)
        {
            System.out.println("2/2");
        }
        else if (examMark >= 60 && examMark <= 69)
        {
            System.out.println("2/1");
        }
        else if (examMark >= 70 && examMark <= 100)
        {
            System.out.println("1st");
        }
        else
        {
            System.out.println("Invalid Mark");
        }
        entry = (firstCap + " " + surCap + ", " + unit + ", " + examMark);
        out.println(entry);
        menuActions();
    }
    public static void viewGrades() {
        int i =1;

        String line;

        try {
            while ((line = reader.readLine()) != null) {
                System.out.println(i + ") " + line);    
                i++; 

            }
        } catch (IOException e) {
            System.err.println("Error, found IOException when searching for record " + e.getMessage());
        }
        menuActions();
    }
    public static void deleteGrades(){
        int i = 1;
        String line;
        File tempFile = new File("MyTempFile.txt");
        BufferedWriter writer = null;
        try {
            writer = new BufferedWriter(new FileWriter(tempFile));
        } catch (IOException e) {
            System.err.println("Error, found IOException when using BufferedWriter " + e.getMessage());
        }
        System.out.println("Current Entries Stored: ");
        i =1;
        try {
            while ((line = reader.readLine()) != null) {
                System.out.println(i + ") " + line);    
                i++; 
            }
        } catch (IOException e) {
            System.err.println("Error, found IOException when searching for record to delete " + e.getMessage());
        }

        Scanner scanner = new Scanner(System.in);
        System.out.print("To delete, please enter student's First Name: "); 
        firstNameDelete = scanner.nextLine();
        System.out.print("Now, please enter student's Surname: ");
        lastNameDelete = scanner.nextLine();
        try {
            reader.close();
        } catch (IOException e) {
            System.err.println("Error, found IOException when closing closing reader: " + e.getMessage());
        }
        try {
            reader = new BufferedReader(new FileReader(deleteRecord));
        } catch (FileNotFoundException e) {
            System.err.println("No file found");
        }
        String currentLine = "";
        try {
            currentLine = reader.readLine();
        } catch (IOException e) {
            System.err.println("Error, found IOException when reading current line " + e.getMessage());
        }

        while(currentLine != null) {
            if(!currentLine.contains(firstNameDelete) && !currentLine.contains(lastNameDelete)) {
                try {
                    writer.write(currentLine);
                } catch (IOException e) {
                    System.err.println("Error, found IOException when deleting line " + e.getMessage());
                }
                try {
                    writer.newLine();
                } catch (IOException e) {
                    System.err.println("Error, found IOException when writing a new line " + e.getMessage());
                }
            }
            try {
                currentLine = reader.readLine();
            } catch (IOException e) {
                System.err.println("Error, found IOException when reading file " + e.getMessage());
            }

        }
        System.out.print("if name matches, it will be deleted ");
        try {
            reader.close();
        } catch (IOException e1) {
            System.err.println("Error, found IOException when closing reader " + e1.getMessage());
        }
        try {
            writer.close();
        } catch (IOException e) {
            System.err.println("Error, found IOException when closing writer " + e.getMessage());
        }
        deleteRecord.delete();
        tempFile.renameTo(deleteRecord);
        scanner.close();
    }
    public static void exitProgram(){
        System.out.println("Thanks for using 'GradeEnter' ");
        System.exit(0);
    }

    public static void main(String[] args) throws Exception {
        System.out.println("Welcome to the 'GradeEnter' program! ");
        setup();
        menuActions();
        out.close();
        scan.close();
        reader.close();
    }

}

编辑:GradeEnter.txt看起来像:

Matt Well, Computing, 100
Adam Smith, Computing, 99

以上由名字,姓氏,课程和标记

组成

0 个答案:

没有答案