Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
1 / 1 / 0
Регистрация: 25.08.2018
Сообщений: 166
1

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

29.11.2018, 19:59. Показов 1774. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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;
    }
}
Подскажите пожалуйста каким образом можно остановить выполнение программы до нажатия кнопки мыши, что бы в строке System.out.println(returnMan.getManMap().get("Фамилия")); не возникала ошибка? Спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.11.2018, 19:59
Ответы с готовыми решениями:

Калькулятор swing: не получается в поле записать значение после нажатия кнопки
Проблема такая: не получается в поле записать значение после нажатия кнопки. Кнопки &quot;слушаются&quot; но...

Swing. Во время выполнения программного клика по кнопке (doClick), не отображаются остальные кнопки
Совсем новичок в Swing, возможно не до конца понимаю потоки или еще что-то. В общем, такая проблема...

Отмена выполнения программы нажатием кнопки
Вопрос вроде легкий, но меня он ввел в ступор. Есть консольное приложение. Задача в том что бы...

Остановка выполнения программы....
Есть прога на Builder'е 6.0, можно ли по нажатии кнопки прекращать выполнение всех выполняющихся в...

5
1246 / 858 / 265
Регистрация: 02.04.2009
Сообщений: 3,255
30.11.2018, 23:04 2
Sashagor82, в чём проблема конкретно? Какая ошибка вылетает? Дайте информацию, а то так Вам вряд ли кто сможет помочь.
0
1 / 1 / 0
Регистрация: 25.08.2018
Сообщений: 166
30.11.2018, 23:13  [ТС] 3
Ошибка в том, что необходимы данные со слушателями кнопки, но программа идёт дальше,т.е обращается к ещё не созданному объекту

Добавлено через 33 секунды
79 строка
0
1246 / 858 / 265
Регистрация: 02.04.2009
Сообщений: 3,255
30.11.2018, 23:36 4
Sashagor82, если returnMan Вы получаете в слушателе кнопки, то линии 79-80 просто никак не могут сработать. Т.к. код в слушателе не исполняется при исполнении остального приведённого Вами кода.
Код, что в слушателе, запустится только при событии (нажатии) с кнопкой. А судя по всему, только в нём Вы и получаете returnMan.

Удалите линии 79-80 и всё должно заработать.
0
1 / 1 / 0
Регистрация: 25.08.2018
Сообщений: 166
30.11.2018, 23:40  [ТС] 5
Тогда и return отправит пустоту, а это не надо.
0
1246 / 858 / 265
Регистрация: 02.04.2009
Сообщений: 3,255
30.11.2018, 23:42 6
Sashagor82, return там вообще не нужен. Прочитайте что я говорю в Вашей второй теме по этому-же коду.
0
30.11.2018, 23:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.11.2018, 23:42
Помогаю со студенческими работами здесь

Остановка и запуск выполнения программы.
Подскажите пожалуйста, как сделать, чтобы при нажатии на клавишу(Pause/Break) выполнение программы...

Остановка выполнения программы исключением
Добрый день! Подскажите, столкнулся с проблемой, написал класс проверки textbox на пустоту: ...

Очистка экрана и остановка программы до нажатия любой клавиши
Помогите сделать так что бы в этой программе происходила очистка экрана и отстановка программы до...

Остановка выполнения программы в событие OnClick
Программа рисует молекулу и та летает в прямоугольнике. Работает правильно но если нажать стоп...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru