Advertisement
Guest User

Laba №15

a guest
Mar 20th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 7.69 KB | None | 0 0
  1. package com.company;
  2.  
  3. import javax.imageio.ImageIO;
  4. import javax.swing.*;
  5. import java.awt.*;
  6. import java.awt.image.BufferedImage;
  7. import java.io.*;
  8. import java.util.*;
  9.  
  10. public class Employees {
  11.  
  12.     public static java.util.List<Employees> employees = new ArrayList<>();
  13.  
  14.     public String name;
  15.     public String gender;
  16.     public int yearOfBirth;
  17.     public int salary;
  18.  
  19.     public Employees(String name, String gender, int yearOfBirth, int salary) {
  20.         this.name = name;
  21.         this.gender = gender;
  22.         this.yearOfBirth = yearOfBirth;
  23.         this.salary = salary;
  24.         employees.add(this);
  25.     }
  26.  
  27.     @Override
  28.     public String toString() {
  29.         return name + "           " + gender + "           " + yearOfBirth + "           " + salary;
  30.     }
  31. }
  32.  
  33. class Window extends JFrame {
  34.  
  35.     private final String IMG_PATH = "Cat_.jpg";
  36.     private final Font font = new Font("Verdana", Font.BOLD, 15);
  37.     private final Font fontData = new Font("Verdana", Font.BOLD, 13);
  38.     private static final Font listFont = new Font("Verdana", Font.BOLD, 11);
  39.     private final Font newAccFont = new Font("Verdana", Font.PLAIN, 25);
  40.     public static final String[] dataNames = {"Names", "Gender", "Year of birth", "Salary"};
  41.     private static final JPanel panel = new JPanel();
  42.     private static final DefaultListModel listModel = new DefaultListModel();
  43.     private static final JList empList = new JList(listModel);
  44.     private static final JScrollPane scrollPane = new JScrollPane(empList);
  45.     private static final File file = new File("Employees.txt");
  46.     private static final File binFile = new File("data.bin");
  47.  
  48.     Window() {
  49.         super("Сотрудники");
  50.         setDefaultCloseOperation(EXIT_ON_CLOSE);
  51.         setSize(650, 500);
  52.         setLocationRelativeTo(null);
  53.         setResizable(false);
  54.         panel.setLayout(null);
  55.  
  56.         JFrame addFrame = new JFrame("New Account");
  57.         addFrame.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
  58.         addFrame.setSize(400, 600);
  59.         addFrame.setLocationRelativeTo(null);
  60.         addFrame.setLayout(null);
  61.         addFrame.setResizable(false);
  62.         addFrame.getContentPane().setBackground(Color.WHITE);
  63.  
  64.         JLabel empLabel = new JLabel("Сотрудники фирмы");
  65.         empLabel.setBounds(100, 1, 200, 100);
  66.         empLabel.setFont(font);
  67.         panel.add(empLabel);
  68.  
  69.         JButton addEmp = new JButton("Добавить сотрудника");
  70.         addEmp.setBounds(100, 350, 200, 50);
  71.         panel.add(addEmp);
  72.  
  73.         scrollPane.setBounds(100, 100, 500, 230);
  74.         panel.add(scrollPane);
  75.  
  76.         JButton removeEmp = new JButton("Удалить сотрудника");
  77.         removeEmp.setBounds(400, 350, 200, 50);
  78.         panel.add(removeEmp);
  79.  
  80.         addEmp.addActionListener(MouseEvent -> addFrame.setVisible(true));
  81.  
  82.         try {
  83.             BufferedImage img = ImageIO.read(new File(IMG_PATH));
  84.             ImageIcon icon = new ImageIcon(img);
  85.             JLabel label = new JLabel(icon);
  86.             label.setBounds(150, 10, 100, 133);
  87.             addFrame.add(label);
  88.         } catch (IOException e) {
  89.             e.printStackTrace();
  90.         }
  91.  
  92.         JLabel newAcc = new JLabel("New Account");
  93.         newAcc.setBounds(120, 110, 200, 100);
  94.         newAcc.setFont(newAccFont);
  95.         addFrame.add(newAcc);
  96.  
  97.  
  98.         JTextField[] dataFields = new JTextField[4];
  99.         JLabel[] dataLabels = new JLabel[dataNames.length];
  100.  
  101.         int y = 150;
  102.         for (int i = 0; i < dataFields.length; i++) {
  103.             dataFields[i] = new JTextField();
  104.             dataFields[i].setBounds(100, (y += 60), 200, 30);
  105.             addFrame.add(dataFields[i]);
  106.         }
  107.  
  108.         int Y = 120;
  109.         for (int i = 0; i < dataNames.length; i++) {
  110.             dataLabels[i] = new JLabel(dataNames[i]);
  111.             dataLabels[i].setFont(fontData);
  112.             dataLabels[i].setBounds(100, (Y += 60), 200, 30);
  113.             addFrame.add(dataLabels[i]);
  114.         }
  115.  
  116.         JButton addAccount = new JButton("New Account");
  117.         addAccount.setBounds(120, 450, 160, 50);
  118.         addFrame.add(addAccount);
  119.  
  120.         addAccount.addActionListener(MouseEvent -> {
  121.             try {
  122.                 for (int i = 0; i < dataFields.length; i++)
  123.                     if (dataFields[i].getText().equals("")) {
  124.                         JOptionPane.showMessageDialog(null, "Вы заполнили не все поля");
  125.                         return;
  126.                     }
  127.                 String name = String.valueOf(dataFields[0].getText());
  128.                 String gender = String.valueOf(dataFields[1].getText());
  129.                 int yearOfBirth = Integer.parseInt(String.valueOf(dataFields[2].getText()));
  130.                 int salary = Integer.parseInt(String.valueOf(dataFields[3].getText()));
  131.                 new Employees(name, gender, yearOfBirth, salary);
  132.                 addFrame.dispose();
  133.                 getEmployee();
  134.                 panel.updateUI();
  135.             } catch (NumberFormatException e) {
  136.                 JOptionPane.showMessageDialog(null, "Недопустимые символы");
  137.             }
  138.         });
  139.  
  140.         removeEmp.addActionListener(MouseEvent -> removeEmployee());
  141.  
  142.         setContentPane(panel);
  143.     }
  144.  
  145.     private static void getEmployee() {
  146.         listModel.addElement(Employees.employees.get(Employees.employees.size() - 1));
  147.         empList.setFont(listFont);
  148.         setFile();
  149.         setBinaryFile();
  150.     }
  151.  
  152.     private static void removeEmployee() {
  153.         listModel.remove(empList.getSelectedIndex());
  154.     }
  155.  
  156.     private static void setFile() {
  157.  
  158.         try {
  159.             FileWriter writer = new FileWriter(file);
  160.             String fName = " ФИО: ";
  161.             String Gender = " Пол: ";
  162.             String year = " Год рождения: ";
  163.             String sal = " Зар.плата: ";
  164.  
  165.             for (Employees element : Employees.employees) {
  166.                 writer.append(fName + element.name + "\n");
  167.                 writer.append(Gender + element.gender + "\n");
  168.                 writer.append(year + element.yearOfBirth + "\n");
  169.                 writer.append(sal + element.salary + "\n\n");
  170.                 if (element.gender.equals("М") && element.yearOfBirth <= 1959) {
  171.                     writer.append(" Скоро пенсия" + "\n");
  172.                 }
  173.                 if (element.gender.equals("Ж") && element.yearOfBirth <= 1964) {
  174.                     writer.append(" Скоро пенсия" + "\n");
  175.                 }
  176.             }
  177.             writer.flush();
  178.             writer.close();
  179.         } catch (IOException e) {
  180.             e.printStackTrace();
  181.         }
  182.     }
  183.  
  184.     public static void setBinaryFile() {
  185.         for (Employees emp : Employees.employees) {
  186.             try (DataOutputStream dos = new DataOutputStream(new FileOutputStream(binFile))) {
  187.                 dos.writeUTF(emp.name);
  188.                 dos.writeUTF(emp.gender);
  189.                 dos.writeUTF(String.valueOf(emp.yearOfBirth));
  190.                 dos.writeUTF(String.valueOf(emp.salary));
  191.                 if (emp.gender.equals("М") && emp.yearOfBirth <= 1959) {
  192.                     dos.writeUTF("Скоро пенсия" + "\n\n");
  193.                 }
  194.                 if (emp.gender.equals("Ж") && emp.yearOfBirth <= 1964) {
  195.                     dos.writeUTF("Скоро пенсия" + "\n\n");
  196.                 }
  197.                 dos.close();
  198.             } catch (IOException ex) {
  199.                 System.out.println(ex.getMessage());
  200.             }
  201.         }
  202.     }
  203. }
  204.  
  205. public class Main {
  206.     public static void main(String[] args) {
  207.         JFrame window = new Window();
  208.         window.setVisible(true);
  209.     }
  210. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement