Продолжение выполнения программы про нажатии кнопки swing

0
29 ноя 2018 17:13
public class FileSystemModel implements Model {
    Man returnMan;
    @Override
    public synchronized Man manLoader() {//Загрузить человека

        File directory = new File(System.getProperty("user.dir") + "/Man");
        if (!directory.exists()) {
            JOptionPane.showMessageDialog(null,
                    "Отсутствует папка Man", "Ошибка", JOptionPane.ERROR_MESSAGE);
            return null;
        } else {
            List<String> files = Arrays.stream(directory.list()).filter(f -> f.endsWith(".man")).collect(Collectors.toList());

            if (files.size() == 0) {
                JOptionPane.showMessageDialog(null,
                        "В папке Man нет данных", "Ошибка", JOptionPane.ERROR_MESSAGE);
                return null;
            }

            TreeMap<String, String> filesCard = new TreeMap<>();
            for (String file : files) {

                try (ObjectInputStream objectInputStream = new ObjectInputStream(
                        new FileInputStream(System.getProperty("user.dir") + "/Man/" + file))) {
                    Man loadman = (Man) objectInputStream.readObject();
                    filesCard.put(
                            loadman.getManMap().get("Фамилия") + " " +
                                    loadman.getManMap().get("Имя") + " " +
                                    loadman.getManMap().get("Отчество") + " " +
                                    loadman.getManMap().get("Личный номер"),
                            loadman.getManMap().get("Личный номер"));
                } catch (FileNotFoundException e1) {
                    e1.printStackTrace();
                } catch (IOException e1) {
                    e1.printStackTrace();
                } catch (ClassNotFoundException e1) {
                    e1.printStackTrace();
                }
            }
            Set<String> treeSet = filesCard.keySet();
            String[] array = treeSet.toArray(new String[0]);
            DefaultListModel dfm = new DefaultListModel();
            final JList list = new JList(dfm);
            for (String line : array) dfm.addElement(line);
            final JScrollPane pane = new JScrollPane(list);
            final JFrame frame = new JFrame("Выбор человека");
            final JButton btnGet = new JButton("Выбрать");
            frame.setLayout(new BorderLayout());
            frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
            frame.getContentPane().add(pane, BorderLayout.CENTER);
            frame.getContentPane().add(btnGet, BorderLayout.SOUTH);
            frame.setSize(600, 400);
            frame.setResizable(false);
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
            btnGet.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    if (list.getSelectedValue() == null) {
                        JOptionPane.showMessageDialog(null,
                                "Не выбран загружаемый персонаж", "Ошибка", JOptionPane.ERROR_MESSAGE);
                    } else {
                        try (ObjectInputStream objectInputStream = new ObjectInputStream(
                                new FileInputStream(System.getProperty("user.dir") + "/Man/" + filesCard.get(list.getSelectedValue()) + ".man"))) {
                            returnMan=(Man) objectInputStream.readObject();
                            System.out.println(returnMan.getManMap().get("Фамилия"));
                        } catch (FileNotFoundException e1) {
                            e1.printStackTrace();
                        } catch (IOException e1) {
                            e1.printStackTrace();
                        } catch (ClassNotFoundException e1) {
                            e1.printStackTrace();
                        }
                    }
                    frame.dispose();
                }
            });
        }
      //Место остановки программы
        System.out.println(returnMan.getManMap().get("Фамилия"));
        return returnMan;
    }
}


Подскажите, как грамотно остановить программу до получения данных получаемых при нажатии кнопки, а именно returnMan?
Модераторы: Нет
Сейчас эту тему просматривают: Нет