Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Обращения из класса в класс (http://forum.oszone.net/showthread.php?t=327329)

blackeangel 04-06-2017 15:11 2742035

Обращения из класса в класс
 
В общем есть такая ситуация. Есть 2 класса - в первом находится форма с кнопочками, чекбоксами и прочими прелестями.
Во втором классе происходят все вычисления. Внимание вопрос: как заставить прогресс бар заполняться?
вызывать еще раз через
Код:

new Class1().progressBar1.setValue(30);
не вариант, так как создает еще один экземпляр формы.
И еще одна неприятность: метод во втором классе - статический.
Как быть то?

shisik 04-06-2017 16:03 2742055

Цитата:

Цитата blackeangel
И еще одна неприятность: метод во втором классе - статический. »

А можно посмотреть на эти классы?

blackeangel 04-06-2017 22:54 2742133

Вложений: 1
  • 3.rar (8.50 KB, скачиваний: 12)
shisik, да пожалуйста, в них нет ничего такого

shisik 05-06-2017 03:25 2742162

Я вижу 3 класса: Generator и его наследников Generater и Functions. progressBar1 определён в классе Generator как public, а значит существует и в его наследниках. Так что и откуда надо вызывать?

blackeangel 05-06-2017 05:02 2742163

Из наследника Generater изменить значение прогресс бара, без вызова ещё одной формы.

shisik 05-06-2017 15:17 2742248

blackeangel, странно, конечно. Зачем эти классы делать анследниками? Ну хорошо, попробуем. Что если в Generator добавить статический член

Код:

protected static Generator instance;
и в main сохранить в него созданный объект:

Код:

instance = new Generator();
А потом где нужно в наследнике вызывать метод установки прогресса:

Код:

instance.bar(30);
Только что будет вызывать методы наследников?

blackeangel 06-06-2017 10:26 2742396

То что искал! Спасибо большое!)

blackeangel 06-06-2017 16:25 2742474

shisik, скажите, а как разделить на несколько потоков, для того чтобы обновлялся прогресс бар?

shisik 06-06-2017 16:29 2742476

Почитайте эту статью https://habrahabr.ru/post/164487/

blackeangel 06-06-2017 17:17 2742490

Цитата:

Цитата shisik (Сообщение 2742476)
Почитайте эту статью https://habrahabr.ru/post/164487/

Это я читал уже. Но осталось непонятным, как это прикрутить к моему проекту?

shisik 06-06-2017 20:44 2742540

blackeangel, ну как? Поместить в отдельынй поток код, требующий длительного времени для выполнения (собственгно, решающий задачу), и периодически в из него посылать сигнал с новым значением погресса.

blackeangel 06-06-2017 22:46 2742559

Цитата:

Цитата shisik (Сообщение 2742540)
blackeangel, ну как? Поместить в отдельынй поток код, требующий длительного времени для выполнения (собственгно, решающий задачу), и периодически в из него посылать сигнал с новым значением погресса.

Хорошо, а будут ли доступны из того потока публичные константы из потока гуи?

shisik 06-06-2017 23:44 2742567

blackeangel, да, будут. Если только константы - то не страшно, а вот если писать какие-то данные, то нужно синхронизировать.


Время: 22:46.

Время: 22:46.
© OSzone.net 2001-