powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как запретить действия пользователя с окном программы после появления блокирующего окна?
12 сообщений из 12, страница 1 из 1
Как запретить действия пользователя с окном программы после появления блокирующего окна?
    #39351940
Сергей_ТВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все кнопки и менюшки блокируются .setEnabled(false). Но у пользователя есть возможность кликнуть на окно программы и оно становиться поверх блокирующего окна, скрывая его. И кроме этого окно программы можно перемещать по экрану. Собственно вопрос о том, как лишить пользователя последнего, чтобы все его внимание было на блокирующем окне?
...
Рейтинг: 0 / 0
Как запретить действия пользователя с окном программы после появления блокирующего окна?
    #39351976
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей_ТВВсе кнопки и менюшки блокируются .setEnabled(false).
JavaFX?

Сергей_ТВНо у пользователя есть возможность кликнуть на окно программы и оно становиться поверх блокирующего окна, скрывая его.
Что вы назывете "блокирующим окном"? Есть понятие "модальный диалог". Понятия "блокирующее окно" - нет.

Сергей_ТВИ кроме этого окно программы можно перемещать по экрану. Собственно вопрос о том, как лишить пользователя последнего, чтобы все его внимание было на блокирующем окне?
А зачем? Никто же так не делает? Почему вы не следуете общепринятым подходам в UI?
...
Рейтинг: 0 / 0
Как запретить действия пользователя с окном программы после появления блокирующего окна?
    #39352019
Сергей_ТВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

по сути блокирующее окно - это модальное окно.
Зачем делать так, если так никто не делает.
Это вопрос философский.
В моем случае получилось так, что написать несколько строк собственной реализации модального окна оказалось быстрее чем разбираться со стандартным решением таких задач. Поясню, пишется программа, в которой важен первый результат, который она даст. Дальше будет приниматься решение о целесообразности ее использования. Если будет признана полезной для практического применения, значит будет переписана по правилам. Если будет признана бесполезной, то и не сильно много времени на нее потрачено.
Поэтому и ситуация такая, что если есть простое решение типа ui.setEnabled(false) оно приемлемо, а если что-то сложное и потребует времени, то времени нет.
За ответ (уже написанный) спасибо.
Если будут еще мысли, буду благодарен.
...
Рейтинг: 0 / 0
Как запретить действия пользователя с окном программы после появления блокирующего окна?
    #39352038
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей_ТВпо сути блокирующее окно - это модальное окно.
да.
Дальше у тебя ничего не понял.
В JavaFX нет модальных окон?
...
Рейтинг: 0 / 0
Как запретить действия пользователя с окном программы после появления блокирующего окна?
    #39352040
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей_ТВui.setEnabled(false) оно приемлемо
лучше
Код: java
1.
XXX.ShowModalDialog
...
Рейтинг: 0 / 0
Как запретить действия пользователя с окном программы после появления блокирующего окна?
    #39352055
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей_ТВВ моем случае получилось так, что написать несколько строк собственной реализации модального окна оказалось быстрее чем разбираться со стандартным решением таких задач.
вот, минуту поискал
Код: java
1.
initModality(Modality.WINDOW_MODAL);


а ты скока писал?
...
Рейтинг: 0 / 0
Как запретить действия пользователя с окном программы после появления блокирующего окна?
    #39352141
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Положите все свои компоненты в какой-нибудь слой и setEnableФэлсайте его. По идее все что внутри будет так же недоступно.
Но по мне дак, проще использовать и поддерживать именно модальные окна. Если есть желание сделайте свою реализацию, добавьте всякие там поля ввода, какую-то другую форму для заполнения, различные кнопки.
Но! В частности в Vaadin, я использую аддоны для этого дела, в частности MessageBox. Реже пишу свои реализации, но готовое использовать проще, вот к примеру красивый с какой-то точки зрения кусок кода, с применением этого аддона
Код: java
1.
2.
3.
4.
5.
 MessageBox.createQuestion().withIcon(null).withWidth("300px").withHeight("250px")
                            .withCaption("Бла-бла заголовок").withMessage(emailTextTA)
                            .withOkButton(buttonOkOption)
                            .withCancelButton(buttonCancelOption)
                            .open();


И иконки свои можно запилить и кнопки разные и форму для ввода можно добавить. Так что, я бы поискал готовое решение для вашего фреймворка.
п.с по началу мне этот код с вызовом кучи методов в одной строке показался диковатым, но теперь привык, сразу вижу что к чему в нем.
...
Рейтинг: 0 / 0
Как запретить действия пользователя с окном программы после появления блокирующего окна?
    #39352158
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixic,
Вроде уже все есть в платформе. И даже. MessageBox в одну строку.
Аффтар жалуется на нехватку времени. Но это менять профессию надо.
Представьте что хирург скажет: "мне некогда тут платформу тела изучать. Я лучше сам скальпелем))))).
...
Рейтинг: 0 / 0
Как запретить действия пользователя с окном программы после появления блокирующего окна?
    #39352211
programania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Но у пользователя есть возможность кликнуть на окно программы...

Само окно т.е. JFrame заблокировать setEnabled(false).
...
Рейтинг: 0 / 0
Как запретить действия пользователя с окном программы после появления блокирующего окна?
    #39352235
Сергей_ТВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Переписал код с использользованием модального окна

Код: java
1.
dialog = new JDialog(gui);



Нравится, что окошко весит поверх программы и перемещается вместе с окном программы.

Что не нравится (читай не разобрался). Хочу убрать многострочное (16 строк) блокирование кнопок и менюшек методом .setEnabled(false) и пробую это сделать через указание типа модальности. Стандартно доступно 4 типа : TOOLKIT_MODAL, APPLICATION_MODAL и т.п..
По смыслу и по факту не подходит ни один. Мне нужно так, чтобы жизнь программы продолжалась, цыферки бегали, в программе, в модальном окошке и в консоле все это отображалось. Есть такое решение или проще .setEnabled(false) ?
...
Рейтинг: 0 / 0
Как запретить действия пользователя с окном программы после появления блокирующего окна?
    #39352247
Сергей_ТВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В моем случае не стоило глубоко с модальностью. Заблокировать доступ к основному окну программы можно было в одну строку
Код: java
1.
gui.setEnabled(false);
...
Рейтинг: 0 / 0
Как запретить действия пользователя с окном программы после появления блокирующего окна?
    #39352268
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей_ТВ,
- если ты делаешь пилотное демо приложение, то зачем тебе эти недоступен\доступен?
- если делаешь модальность сам, то не забывать что модальность это 3 функционала focus\z-order\enable
Делать это руками очень не просто.

Сергей_ТВМне нужно так, чтобы жизнь программы продолжалась, цыферки бегали, в программе, в модальном окошке и в консоле все это отображалось. Есть такое решение или проще .setEnabled(false) ?
не понял. Если код работает, то в модальном окне всё также бегает и отображается.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как запретить действия пользователя с окном программы после появления блокирующего окна?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]