Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
1 / 1 / 1
Регистрация: 14.02.2014
Сообщений: 27

Выполнение действий во время нажатия кнопки

26.03.2015, 09:16. Показов 1866. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В чем суть проблема. Простенькая программка с одним классом, весь код в Мейне. Одна кнопка, 2 текстовых поля, 5 лейблов.
При нажатии кнопки срабатывают массивные SQL выборки, подхватывающие и подсчитывающие выручку и долги из базы за определенный отрезок времени, указанный в 2 текстовых полях.
Проблема заключается в том, что если отрезок времени выпадает больше месяца (а периодически используется и для больших периодов), то время обработки программы занимает порядка 10-15 секунд.
Все это время кнопка показывает анимацию будто она зажата, а если пользователю неймется - он будет её тыкать десятки раз. И соответственно, после того как программа додумает первое нажатие кнопки её будет ожидать еще 10 нажатий
Чтобы это избежать Я хочу на время обдумывания показывать Лейбл5 с сообщением, что нужно подождать("идет подсчет" и т.п.). Если Я просто вначале кода листенера кнопки вывожу Видимость Лейбла и в конце всего кода вывожу прячу его, то у меня на деле ничего не происходит. Кнопка зажимается, происходит обработка, выдаются значения. Лебл5 как был невидимым, так им и остался после листенера. Эта проблема меня догоняет уже не первый раз с разных проектов и надо уже с ней что-то делать
Пробовал с нажатием кнопки вначале вызывать отдельный метод с таймером, показывающим Лейбл5, и в конце обработки кнопки закрывающий останавливающий этот таймер, но эффект тот же.
Теперь смотрю в сторону бездны. Хочу создать второй поток, но для меня эта дорога весьма терниста...
Наверняка кто-нибудь уже сталкивался с подобной проблемой. Буду признателен совету
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.03.2015, 09:16
Ответы с готовыми решениями:

Выполнение действий после нажатия кнопки
у меня есть html файл и php файл с обработчиком событий внутри!!! В html файле я добавил кнопку!!! Как сделать что бы при нажатии этой...

Выполнение действий в заданное время
Как сделать чтобы через определённый промежуток времени были произведенны какие либо операции к примеру "Годовое начисление...

Выполнение действий по расписанию, в определенное время
как сделать что бы прога отслеживала время и если наступило к примеру 21:00 выполнила какие-то действия? Бесконечным циклом запустить?...

5
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
26.03.2015, 09:56
много букв
подумай и переформулируй вопрос
0
1 / 1 / 1
Регистрация: 14.02.2014
Сообщений: 27
26.03.2015, 10:03  [ТС]
Хм.... Как адекватно вывести показатель (лейбл, анимацию) выполнения какого-либо длительного процесса в программе?
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
26.03.2015, 10:06
Лучший ответ Сообщение было отмечено ANTVirGEO как решение

Решение

на самом деле второй поток именно то, что требуется
просто вынести весь код, который не трогает GUI в отдельный поток
правда при этом придется подумать как и что показать на экране пока идет выборка, но кнопка точно будет отжата
1
1 / 1 / 1
Регистрация: 14.02.2014
Сообщений: 27
26.03.2015, 10:58  [ТС]
Понятно) пойду ковырять Многопоточность. Спасибо!

Добавлено через 47 минут
Вывел все запросы в другой класс в побочный поток) С основного потока ставится видимость текста "Подождите" и неактивность кнопки, далее вызов побочного потока со всеми запросами Рад невозможно
0
1 / 1 / 1
Регистрация: 14.02.2014
Сообщений: 27
26.03.2015, 11:30  [ТС]
Результат :)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.03.2015, 11:30
Помогаю со студенческими работами здесь

Выполнение действий через некоторое время
хочу сделать так чтобы на экран выводились всякие символы через некторое время. ну например: сначала на экран выводится П черех несколько...

Выполнение определенных действий в заданное время
есть форма , таймер, лейбел 1. В таймере прописываем Label1.Caption:=TimeToStr(Time); допустим нужно открыть форму 2 в 11:00 и как...

Выполнение определенных действий в заданное время
Доброго времени суток! Стало интересно, возможно ли как то заставить программу выполнять какое либо действие в зависимости от времени?...

Выполнение до нажатия кнопки
Доброго времени суток. Подскажите плиз. Как сделать так, чтоб программа при запуске уже прорабатывалась и потом по нажатию кнопки на форме...

Не запускается комп: индикатор возле кнопки Пуск на системнике зажегся только во время нажатия кнопки. После - не горит.
Просьба к форумчанам помочь в решении проблеммы. Сегодня вдруг отрубился комп во время работы. Если быть точнее, то аудио выключилось, а на...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru