Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import javax.imageio.ImageIO;
- import javax.swing.*;
- import java.awt.*;
- import java.awt.image.BufferedImage;
- import java.io.*;
- import java.util.*;
- public class Employees {
- public static java.util.List<Employees> employees = new ArrayList<>();
- public String name;
- public String gender;
- public int yearOfBirth;
- public int salary;
- public Employees(String name, String gender, int yearOfBirth, int salary) {
- this.name = name;
- this.gender = gender;
- this.yearOfBirth = yearOfBirth;
- this.salary = salary;
- employees.add(this);
- }
- @Override
- public String toString() {
- return name + " " + gender + " " + yearOfBirth + " " + salary;
- }
- }
- class Window extends JFrame {
- private final String IMG_PATH = "Cat_.jpg";
- private final Font font = new Font("Verdana", Font.BOLD, 15);
- private final Font fontData = new Font("Verdana", Font.BOLD, 13);
- private static final Font listFont = new Font("Verdana", Font.BOLD, 11);
- private final Font newAccFont = new Font("Verdana", Font.PLAIN, 25);
- public static final String[] dataNames = {"Names", "Gender", "Year of birth", "Salary"};
- private static final JPanel panel = new JPanel();
- private static final DefaultListModel listModel = new DefaultListModel();
- private static final JList empList = new JList(listModel);
- private static final JScrollPane scrollPane = new JScrollPane(empList);
- private static final File file = new File("Employees.txt");
- private static final File binFile = new File("data.bin");
- Window() {
- super("Сотрудники");
- setDefaultCloseOperation(EXIT_ON_CLOSE);
- setSize(650, 500);
- setLocationRelativeTo(null);
- setResizable(false);
- panel.setLayout(null);
- JFrame addFrame = new JFrame("New Account");
- addFrame.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
- addFrame.setSize(400, 600);
- addFrame.setLocationRelativeTo(null);
- addFrame.setLayout(null);
- addFrame.setResizable(false);
- addFrame.getContentPane().setBackground(Color.WHITE);
- JLabel empLabel = new JLabel("Сотрудники фирмы");
- empLabel.setBounds(100, 1, 200, 100);
- empLabel.setFont(font);
- panel.add(empLabel);
- JButton addEmp = new JButton("Добавить сотрудника");
- addEmp.setBounds(100, 350, 200, 50);
- panel.add(addEmp);
- scrollPane.setBounds(100, 100, 500, 230);
- panel.add(scrollPane);
- JButton removeEmp = new JButton("Удалить сотрудника");
- removeEmp.setBounds(400, 350, 200, 50);
- panel.add(removeEmp);
- addEmp.addActionListener(MouseEvent -> addFrame.setVisible(true));
- try {
- BufferedImage img = ImageIO.read(new File(IMG_PATH));
- ImageIcon icon = new ImageIcon(img);
- JLabel label = new JLabel(icon);
- label.setBounds(150, 10, 100, 133);
- addFrame.add(label);
- } catch (IOException e) {
- e.printStackTrace();
- }
- JLabel newAcc = new JLabel("New Account");
- newAcc.setBounds(120, 110, 200, 100);
- newAcc.setFont(newAccFont);
- addFrame.add(newAcc);
- JTextField[] dataFields = new JTextField[4];
- JLabel[] dataLabels = new JLabel[dataNames.length];
- int y = 150;
- for (int i = 0; i < dataFields.length; i++) {
- dataFields[i] = new JTextField();
- dataFields[i].setBounds(100, (y += 60), 200, 30);
- addFrame.add(dataFields[i]);
- }
- int Y = 120;
- for (int i = 0; i < dataNames.length; i++) {
- dataLabels[i] = new JLabel(dataNames[i]);
- dataLabels[i].setFont(fontData);
- dataLabels[i].setBounds(100, (Y += 60), 200, 30);
- addFrame.add(dataLabels[i]);
- }
- JButton addAccount = new JButton("New Account");
- addAccount.setBounds(120, 450, 160, 50);
- addFrame.add(addAccount);
- addAccount.addActionListener(MouseEvent -> {
- try {
- for (int i = 0; i < dataFields.length; i++)
- if (dataFields[i].getText().equals("")) {
- JOptionPane.showMessageDialog(null, "Вы заполнили не все поля");
- return;
- }
- String name = String.valueOf(dataFields[0].getText());
- String gender = String.valueOf(dataFields[1].getText());
- int yearOfBirth = Integer.parseInt(String.valueOf(dataFields[2].getText()));
- int salary = Integer.parseInt(String.valueOf(dataFields[3].getText()));
- new Employees(name, gender, yearOfBirth, salary);
- addFrame.dispose();
- getEmployee();
- panel.updateUI();
- } catch (NumberFormatException e) {
- JOptionPane.showMessageDialog(null, "Недопустимые символы");
- }
- });
- removeEmp.addActionListener(MouseEvent -> removeEmployee());
- setContentPane(panel);
- }
- private static void getEmployee() {
- listModel.addElement(Employees.employees.get(Employees.employees.size() - 1));
- empList.setFont(listFont);
- setFile();
- setBinaryFile();
- }
- private static void removeEmployee() {
- listModel.remove(empList.getSelectedIndex());
- }
- private static void setFile() {
- try {
- FileWriter writer = new FileWriter(file);
- String fName = " ФИО: ";
- String Gender = " Пол: ";
- String year = " Год рождения: ";
- String sal = " Зар.плата: ";
- for (Employees element : Employees.employees) {
- writer.append(fName + element.name + "\n");
- writer.append(Gender + element.gender + "\n");
- writer.append(year + element.yearOfBirth + "\n");
- writer.append(sal + element.salary + "\n\n");
- if (element.gender.equals("М") && element.yearOfBirth <= 1959) {
- writer.append(" Скоро пенсия" + "\n");
- }
- if (element.gender.equals("Ж") && element.yearOfBirth <= 1964) {
- writer.append(" Скоро пенсия" + "\n");
- }
- }
- writer.flush();
- writer.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- public static void setBinaryFile() {
- for (Employees emp : Employees.employees) {
- try (DataOutputStream dos = new DataOutputStream(new FileOutputStream(binFile))) {
- dos.writeUTF(emp.name);
- dos.writeUTF(emp.gender);
- dos.writeUTF(String.valueOf(emp.yearOfBirth));
- dos.writeUTF(String.valueOf(emp.salary));
- if (emp.gender.equals("М") && emp.yearOfBirth <= 1959) {
- dos.writeUTF("Скоро пенсия" + "\n\n");
- }
- if (emp.gender.equals("Ж") && emp.yearOfBirth <= 1964) {
- dos.writeUTF("Скоро пенсия" + "\n\n");
- }
- dos.close();
- } catch (IOException ex) {
- System.out.println(ex.getMessage());
- }
- }
- }
- }
- public class Main {
- public static void main(String[] args) {
- JFrame window = new Window();
- window.setVisible(true);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement