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

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

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

Студворк — интернет-сервис помощи студентам
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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.11.2018, 19:59
Ответы с готовыми решениями:

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

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

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

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

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

Удалите линии 79-80 и всё должно заработать.
0
-1 / 2 / 0
Регистрация: 25.08.2018
Сообщений: 199
30.11.2018, 23:40  [ТС]
Тогда и return отправит пустоту, а это не надо.
0
 Аватар для Kukstyler
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,306
30.11.2018, 23:42
Sashagor82, return там вообще не нужен. Прочитайте что я говорю в Вашей второй теме по этому-же коду.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.11.2018, 23:42
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru