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

Получение данных из слушателя

25.09.2019, 20:46. Показов 679. Ответов 1

Студворк — интернет-сервис помощи студентам
Добрый день, помогите, совсем запутался в приведенном коде содержится модель с помощью JDialog необходимо загрузить данные из файла и вернуть их в вызывающий класс, помогите пожалуйста реализовать return необходим в обработчике нажатия кнопки, каким образом это можно сделать? Вопрос в том как реализовать actionPerformed кнопки "Открыть"?
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
public class Files1 implements Model, Serializable {
 
    @Override
    public Man manLoader() {
        String personName=null;
        Man returnMan = null;
        DefaultTableModel dtm=new DefaultTableModel(){
            @Override
            public boolean isCellEditable(int row, int column) {
                return false;
            }
        };
        dtm.setColumnIdentifiers(new String[]{"Номер","Фамилия","Имя","Отчество","Файл"});
 
                dtm.addRow(new String[]{"Первый","Иванов","Иван","Иванович","001"});
                dtm.addRow(new String[]{"Второй","Иванов2","Иван2","Иванович","002"});
                dtm.addRow(new String[]{"Третий","Иванов3","Иван3","Иванович","003"});
                dtm.addRow(new String[]{"Четвертый","Иванов4","Иван4","Иванович","001"});
            
            JTable jTable=new JTable(dtm);
            jTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
            jTable.setAutoCreateRowSorter(true);
            jTable.setRowSelectionAllowed(true);
            jTable.setRowSelectionInterval(0, 0);
            JDialog jDialog=new JDialog();
            jDialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
            jDialog.setSize(1000,500);
            jDialog.setLocationRelativeTo(null);
            jDialog.add(new JScrollPane(jTable));
            jDialog.setVisible(true);
            JButton openJButton=new JButton("Открыть");
            openJButton.setFocusPainted(false);
            openJButton.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
 
                    String personName= (String) jTable.getValueAt(jTable.getSelectedRow(),4);
                    if (personName == null) return null;//Здесь ошибка
                    try (ObjectInputStream objectInputStream = new ObjectInputStream(
                            new FileInputStream(System.getProperty("user.dir") + "/Man/" + personName + ".man"))) {
                        returnMan = (Man) objectInputStream.readObject();//Здесь ошибка
 
                    } catch (FileNotFoundException e1) {
                        e1.printStackTrace();
                    } catch (IOException e1) {
                        e1.printStackTrace();
                    } catch (ClassNotFoundException e1) {
                        e1.printStackTrace();
                    }
                    jDialog.dispose();
                }
            });
            JButton delleteJButton=new JButton("Удалить");
            delleteJButton.setFocusPainted(false);
            JButton closeJButton=new JButton("Закрыть");
            closeJButton.setFocusPainted(false);
            JPanel buttonJPanel=new JPanel();
            buttonJPanel.add(openJButton);
            buttonJPanel.add(delleteJButton);
            buttonJPanel.add(closeJButton);
            jDialog.add(buttonJPanel, BorderLayout.SOUTH);
        
        return returnMan;
    }
 
    @Override
    public void manSaver(Man man) {
 
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.09.2019, 20:46
Ответы с готовыми решениями:

Ошибка слушателя
Всем привет. Недавно начал учить Java и столкнулся с одной проблемой при написании калькулятора: в классе CalculatorEngine выдает ошибку в...

Удаление слушателя
Есть у меня некий класс, структура такая: package Data.CLASSES.PLATFORMS { //...........импорты public class PLATFORM_KILL...

Заморочка слушателя мыши
import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import...

1
Модератор
Эксперт Java
 Аватар для alecss131
2856 / 1363 / 406
Регистрация: 11.08.2017
Сообщений: 4,348
Записей в блоге: 2
26.09.2019, 20:22
Вы бы весь код приводили, а то без класса Man проверить правильность проблематично, да и неизвестно как использовать ваш класс, так как в нем только 2 переопределения методов.
Теперь по ошибкам. Первая вы пытаетесь возвратить null в слушателе у которого тип void. Тот return возвращает не из вашего метода значение а из слушателя. Вторую проверить не смог (в начале написал почему).
Еще используйте метод toString() вместо (String). Еще можно вместо кучи case использовать один на все.
С вашим кодом гуи не весь влазиет в окно, кнопки снизу за пределами окна и приходится окно расширять.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.09.2019, 20:22
Помогаю со студенческими работами здесь

Исключения в методе слушателя
Я пишу пытаюсь написать калькулятор для подсчета длины спиц на велосипедном колесе, при нажатии на баттон при условии заполненных полей...

Реализация общего слушателя
В программе есть 3 класса: интерфейс пользователя (jPanel), класс рабочего объекта и главное окно (jFrame с экземплярами интерфейса и...

Автоматическое добавление слушателя
Всем привет... Недавно возникла проблема.... Когда программа запускается то автоматически размещает на форме jCheckBox. Мне надо...

SWT: Удалить слушателя
Предположим, у меня есть класс, объекты которого умеют генерить и добавлять специфического слушателя (отдельный класс, имплементящий...

Линк данных Access-Excel, Получение данных с внешних источников
Описание задачи: Есть некая база в Аксесе, данные с которой выгружаются в ексель с помощью линка. Т.е. в екселе организован метод...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru