Vorrei contrastare l'argomento "non user friendly" con un esempio di cui sono appena stato coinvolto.
Nella nostra applicazione abbiamo una finestra principale in cui gli utenti eseguono vari "programmi" come schede separate. Per quanto possibile, abbiamo cercato di mantenere la nostra applicazione in questa singola finestra.
Uno dei "programmi" che eseguono presenta un elenco di report che sono stati generati dal sistema e l'utente può fare clic su un'icona su ciascuna riga per aprire una finestra di dialogo del visualizzatore di report. Questo visualizzatore mostra l'equivalente delle pagine A4 verticale / orizzontale del report, quindi agli utenti piace che questa finestra sia abbastanza grande, quasi riempiendo gli schermi.
Alcuni mesi fa abbiamo iniziato a ricevere richieste dai nostri clienti per rendere modeste queste finestre del visualizzatore di report, in modo che potessero aprire più report contemporaneamente.
Per qualche tempo ho resistito a questa richiesta poiché non pensavo che fosse una buona soluzione. Tuttavia, la mia mente è cambiata quando ho scoperto come gli utenti stessero aggirando questa "carenza" del nostro sistema.
Stavano aprendo un visualizzatore, usando la funzione 'Salva con nome' per salvare il rapporto come PDF in una directory specifica, usando Acrobat Reader per aprire il file PDF, e avrebbero fatto lo stesso con il rapporto successivo. Avrebbero più lettori Acrobat in esecuzione con i vari output di report che volevano guardare.
Così ho ceduto e reso lo spettatore non modale. Ciò significa che ogni visualizzatore ha un'icona nella barra delle attività.
Quando l'ultima versione è stata rilasciata a loro la scorsa settimana, la risposta schiacciante da loro è che AMANO. È stato uno dei nostri più recenti recenti miglioramenti del sistema.
Quindi vai avanti e dici ai tuoi utenti che ciò che vogliono è male, ma alla fine non ti farà alcun favore.
ALCUNE NOTE:
- Sembra essere la migliore pratica usare JDialog per queste finestre non modali
- Usa i costruttori che usano il nuovo
ModalityType
anziché l' modal
argomento booleano . Questo è ciò che dà a queste finestre di dialogo l'icona della barra delle applicazioni.
- Per le finestre di dialogo non modali, passare un genitore nullo al costruttore, ma localizzarlo in relazione alla finestra "principale".
- La versione 6 di Java su Windows ha un bug, il che significa che la tua finestra principale può diventare "sempre in primo piano" senza che tu te lo dica. Aggiorna alla versione 7 per risolvere questo problema