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

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

25.09.2019, 20:46. Показов 683. Ответов 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
2880 / 1384 / 411
Регистрация: 11.08.2017
Сообщений: 4,413
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru