Я бы хотел противопоставить аргумент "не дружественный пользователю" примером, с которым я только что работал.
В нашем приложении у нас есть главное окно, в котором пользователи запускают различные «программы» в виде отдельных вкладок. В максимально возможной степени мы старались держать наше приложение в этом единственном окне.
Одна из «программ», которые они запускают, представляет список отчетов, которые были сгенерированы системой, и пользователь может щелкнуть значок в каждой строке, чтобы открыть диалоговое окно просмотра отчетов. Этот вьюер показывает эквивалент страниц (4) в книжной / альбомной ориентации отчета, поэтому пользователям нравится, что это окно довольно большое, почти полностью заполняющее их экраны.
Несколько месяцев назад мы начали получать запросы от наших клиентов, чтобы сделать эти окна просмотра отчетов немодальными, чтобы они могли одновременно открывать несколько отчетов.
Некоторое время я отказывался от этого запроса, так как не думал, что это хорошее решение. Однако мое мнение изменилось, когда я узнал, как пользователи обходят этот «недостаток» нашей системы.
Они открывали программу просмотра, используя функцию «Сохранить как», чтобы сохранить отчет в виде PDF-файла в определенный каталог, используя Acrobat Reader, чтобы открыть файл PDF, и затем они делали то же самое со следующим отчетом. У них будет несколько читателей Acrobat, работающих с различными выводами отчетов, которые они хотят просмотреть.
Поэтому я смягчился и сделал зрителя немодальным. Это означает, что у каждого зрителя есть значок на панели задач.
Когда последняя версия была выпущена для них на прошлой неделе, подавляющим ответом было то, что они ЛЮБЯТ это. Это было одним из наших самых популярных последних улучшений в системе.
Итак, вы идете вперед и говорите своим пользователям, что то, что они хотят, плохо, но в конечном итоге это не принесет вам пользы.
НЕКОТОРЫЕ ЗАМЕЧАНИЯ:
- Кажется, лучше всего использовать JDialog для этих немодальных окон.
- Используйте конструкторы, которые используют новый,
ModalityType
а не логический modal
аргумент. Это то, что дает этим диалогам значок панели задач.
- Для немодальных диалогов, передайте в конструктор нулевого родителя, но найдите его относительно своего «родительского» окна.
- В версии 6 Java на Windows есть ошибка, которая означает, что ваше главное окно может стать «всегда сверху» без вашего ведома. Обновление до версии 7, чтобы исправить это