Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
37 / 31 / 5
Регистрация: 30.04.2014
Сообщений: 1,035

Аналог обратного вызова в JAVA

11.02.2016, 12:15. Показов 1297. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Имеется класс (GUI). Начало его конструктора:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    public ParamGraphics(String param, ArrayList<Point> np)
    {
        paramPoints = np;
        paramPoints.sort(new Comp());
 
        jFrame = new JFrame("Editor of daily graphics of " + param);
        Image img = new ImageIcon("d:\\javaGraphs\\icon.png").getImage();
        jFrame.setIconImage(img);
 
        DefaultTableModel dtm = new DefaultTableModel(tableData, tableCols);
 
        for(int i = 0; i < paramPoints.size(); ++i){
            dtm.addRow(new Object[]{i, paramPoints.get(i).x, paramPoints.get(i).y});
        }
 
 
        table = new JTable(dtm);
        
        ...
При вызове этого класса ему передаётся массив (лист аррей) элементов. Создаётся окно, в котором они редактируются, после чего окно закрывается.


Вызов класса такой:

Java
1
ParamGraphics pg = new ParamGraphics("TemperDesire " + ghNumber, needParamsToPoint(MainParams.ghm[ghNumber].needParamses, "TemperDesire"));
Подскажите, как сделать так, чтобы при закрытии окна изменения сохранялись.

Читал Шилдта, Эккеля, Флэнагана. Подобного у них не встречал.

В С++ к примеру можно callback через this организовать или делегатов. И при событии закрытия окна вызвать этот callback. Скажите, в яве так же делается?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.02.2016, 12:15
Ответы с готовыми решениями:

Реализация функции обратного вызова
Я так понимаю использование механизма callback в Java это стандартная практика. Но пока не смог найти внятного примера как это реализовать....

Функция обратного вызова
Функция обратного вызова это та, которая передаётся в качестве аргумента другой функции и внутри неё вызывается. А вот функция,...

Функция обратного вызова
Приветствую всех. Создаю свой класс и при определенном событии в экземпляре этого класса должна выполниться функция, которая будет указана...

5
 Аватар для Lumber
345 / 141 / 51
Регистрация: 02.12.2015
Сообщений: 333
11.02.2016, 12:37
Объявляется интерфейс с callback методом. После чего либо создаётся анонимный класс реализующий этот интерфейс. Либо сам вызывающий класс его реализует.
1
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
11.02.2016, 12:52
Лучший ответ Сообщение было отмечено Khludenkov как решение

Решение

Цитата Сообщение от Khludenkov Посмотреть сообщение
В С++ к примеру можно callback через this организовать или делегатов.
если бы вы понимали принцип работы колбеков и делегатов, у вас бы не возникло таких вопросов.

Смотрите паттерн Observer
1
37 / 31 / 5
Регистрация: 30.04.2014
Сообщений: 1,035
11.02.2016, 15:26  [ТС]
Я знаю что колбеки через указатели сделаны, которых в яве нет. Всё равно, большое спасибо, KEKCoGEN.
Если нет решения проще, будем его использовать.
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
11.02.2016, 15:49
Цитата Сообщение от Khludenkov Посмотреть сообщение
Я знаю что колбеки через указатели сделаны, которых в яве нет
колбеки сделанны по паттерну который я выше привел. В джава указатели кругом. Посути каждый объект это указатель.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,765
11.02.2016, 20:08
Цитата Сообщение от Khludenkov Посмотреть сообщение
Я знаю что колбеки через указатели сделаны
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private final Runnable closeCallback;
 
public ParamGraphics(String param, ArrayList<Point> np, final Runnable closeCallback)
{
    this.closeCallback = closeCallback;
    ...
}
 
какойТамМетодВызываетсяПриЗакрытииОкна
{
    if (closeCallback != null) {
        closeCallback.run();
    }
    ...
}
Java
1
2
3
ParamGraphics pg = new ParamGraphics(param, params, () -> {
    // do something
});
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.02.2016, 20:08
Помогаю со студенческими работами здесь

Интерфейсы обратного вызова
Как часто ли Вы используете интерфейсы обратного вызова? Если да, то для чего обычно? :)

Функция обратного вызова
#undef UNICODE #include &lt;windows.h&gt; #include &quot;resource.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; HWND...

Процедура обратного вызова
Немного запутался в процедурах обратного вызова, в процедурных типах. Есть DLL и описание к ней. ... type TFullCardInfo =...

Функция обратного вызова
Доброго времени суток уважаемые гуру программирования! Нужна помощь! В описании к DLL есть функция: function...

Функция обратного вызова в классе
Такие проблемы возникли у меня. Есть два класса.В одном классе относится к окну(создание,регистрация и тд),а второй класс это...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru