Отображение прогресса чтения объекта с использованием ProgressMonitor в Java - PullRequest
0 голосов
/ 18 апреля 2020

Я пытаюсь показать прогресс при загрузке объекта. В моей программе, когда я нажимаю кнопку «Загрузить», программа начинает читать объект.

loadMenuItem.addActionListener(e -> {
            employeesALcopy = Helpers.ReadEmployees();
});

Моя функция ReadEmployees () выглядит следующим образом:

public static EmployeesAL ReadEmployees()
    {
        EmployeesAL employeesALcopy = null;

        try (ObjectInputStream in = new ObjectInputStream(new FileInputStream("employeesAL.dat"))) {
            employeesALcopy = (EmployeesAL) in.readObject();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        return employeesALcopy;
    }

У меня там 1000000 сотрудников, и это занимает 2-3 минуты, чтобы загрузить этот файл. Как я могу легко показать прогресс этого с помощью ProgressMonitor?

Код EmployeesAL:

public class EmployeesAL extends Employees implements Serializable {

    private List<Employee> employeeList;

    EmployeesAL()
    {
        employeeList = new ArrayList<>();
    }   
}

Код сотрудника:

public class Employee extends Person {
    private String employerName;
    private LocalDate employmentDate;
    private LocalDate releaseDate;
    private BigDecimal salary;
    private String jobtitle;
    private byte[] employeeImage;
}

Объект EmployeesAL имеет ArrayList сотрудников.

...