Eu gostaria de combater o argumento "não amigável" com um exemplo com o qual acabei de me envolver.
Em nossa aplicação, temos uma janela principal onde os usuários executam vários 'programas' como guias separadas. Tanto quanto possível, tentamos manter nosso aplicativo nessa única janela.
Um dos 'programas' executados apresenta uma lista de relatórios gerados pelo sistema, e o usuário pode clicar em um ícone em cada linha para abrir uma caixa de diálogo do visualizador de relatórios. Este visualizador está mostrando o equivalente às páginas A4 retrato / paisagem do relatório, para que os usuários gostem dessa janela como sendo bastante grande, quase preenchendo suas telas.
Alguns meses atrás, começamos a receber solicitações de nossos clientes para tornar essas janelas do visualizador de relatórios sem modelagem, para que eles pudessem ter vários relatórios abertos ao mesmo tempo.
Por algum tempo, resisti a esse pedido, pois não achei que fosse uma boa solução. No entanto, minha mente mudou quando descobri como os usuários estavam contornando essa 'deficiência' do nosso sistema.
Eles estavam abrindo um visualizador, usando o recurso 'Salvar como' para salvar o relatório como PDF em um diretório específico, usando o Acrobat Reader para abrir o arquivo PDF e, em seguida, fariam o mesmo no próximo relatório. Eles teriam vários leitores Acrobat sendo executados com as várias saídas de relatório que desejavam examinar.
Então, cedi e fiz com que o visualizador não fosse modelado. Isso significa que cada visualizador possui um ícone na barra de tarefas.
Quando a última versão foi lançada para eles na semana passada, a resposta esmagadora deles é que eles ADORAM. Esse foi um dos aprimoramentos recentes mais populares do sistema.
Então vá em frente e diga aos usuários que o que eles querem é ruim, mas, no final das contas, isso não fará nenhum favor a você.
ALGUMAS NOTAS:
- Parece ser uma boa prática usar o JDialog para essas janelas sem modelagem
- Use os construtores que usam o argumento novo
ModalityType
e não o booleano modal
. É isso que dá a essas caixas de diálogo o ícone da barra de tarefas.
- Para diálogos sem modelo, passe um pai nulo para o construtor, mas localize-os em relação à janela 'pai'.
- A versão 6 do Java no Windows possui um bug, o que significa que sua janela principal pode ficar 'sempre no topo' sem que você precise. Atualize para a versão 7 para corrigir isso