Accueil de l'archive Service proposé par Hervé AGNOUX

TOUT -|- TOUT sur le visuel -|- TOUT sur la logistique

From:           	"Herve AGNOUX" <hagnoux@mail.club-internet.fr>
To:             	java@u-strasbg.fr
Date sent:      	Fri, 17 Nov 2000 05:04:42 +0100
Subject:        	JOptionPane.showOptionDialog, bouton par defaut
Priority:       	normal
Send reply to:  	java@u-strasbg.fr

Bonjour,

J'utilise un JOptionPane.showOptionDialog avec "Oui" "Non" 
comme bouton.

Au départ, le bouton par défaut est "Oui", ce qui est bien. Je fais 
<ENTREE> au clavier, et le comportement attendu du bouton "Oui" 
se produit.

Je m'avise de vouloir choisir le bouton "Non". Si je le choisis avec la
souris, tout se passe bien. Mais si je le choisis par le biais de la
tabulation, je vois bien que le focus se déplace du bouton "Oui" vers le
bouton "Non", mais si j'appuie sur <ENTREE>, c'est le comportement du
bouton "Oui" qui est activé.

Il me semble que la tabulation déplace le focus, mais pas le 
bouton par défaut, activé par la touche <ENTREE>. Or je 
m'excuse, sous windows, la tabulation déplace le focus ET le 
bouton par défaut. (ce qui semble normal, puisque le bouton qui a 
le focus reçoit la touche, non ? comment ce bogue peut-il se 
produire avec swing !?) (ah ! c'est vrai, avec swing, y'a pas de 
composants natifs)

Connaissez-vous un workaround ?

[swing 1.1.1, jdk 1.1.8, win95]


--
Hervé AGNOUX  hagnoux@mail.club-internet.fr
Faites vos sites avec des formulaires electroniques :
http://www.diaam.com

     

Date sent:      	Fri, 17 Nov 2000 07:05:48 +0100
From:           	Alban Peignier <alban.peignier@leuville.com>
Organization:   	Leuville Objects
To:             	java@u-strasbg.fr
Subject:        	Re: JOptionPane.showOptionDialog, bouton par defaut
Send reply to:  	java@u-strasbg.fr

Bonjour,

Toutes les fenêtres Swing suivent le même principe : la touche Entrée
déclenche le bouton par défaut. Les JOptionPane ne sont pas en reste. Le
seul défaut, c'est qu'on ne peut pas modifier directement leur
comportement. J'ai retenu la solution suivante : je n'utilise pas
directement la JOptionPane Oui/Non mais je lui indique moi même les
options disponibles. La liste ne change pas vraiment mais je modifie
l'ordre si nécessaire.

boolean OptionPane.showConfirmDialog(String title, String message, 
boolean default)

Lorsque default est false, les options sont Non/Oui dont le comportement
est inversé. Le gros avantage est que cela pousse les utilisateurs à faire
un peu plus attention et à ne pas répondre mécaniquement.

Alban

Herve AGNOUX wrote:

> Bonjour,
> 
> J'utilise un JOptionPane.showOptionDialog avec "Oui" "Non" 
> comme bouton.
> 
> Au départ, le bouton par défaut est "Oui", ce qui est bien. Je fais
> <ENTREE> au clavier, et le comportement attendu du bouton "Oui" se
> produit.
> 
> Je m'avise de vouloir choisir le bouton "Non". Si je le choisis avec la
> souris, tout se passe bien. Mais si je le choisis par le biais de la
> tabulation, je vois bien que le focus se déplace du bouton "Oui" vers le
> bouton "Non", mais si j'appuie sur <ENTREE>, c'est le comportement du
> bouton "Oui" qui est activé.
> 
> Il me semble que la tabulation déplace le focus, mais pas le 
> bouton par défaut, activé par la touche <ENTREE>. Or je 
> m'excuse, sous windows, la tabulation déplace le focus ET le 
> bouton par défaut. (ce qui semble normal, puisque le bouton qui a 
> le focus reçoit la touche, non ? comment ce bogue peut-il se 
> produire avec swing !?) (ah ! c'est vrai, avec swing, y'a pas de 
> composants natifs)
> 
> Connaissez-vous un workaround ?
> 
> [swing 1.1.1, jdk 1.1.8, win95]
> 
> 
> --
> Hervé AGNOUX  hagnoux@mail.club-internet.fr
> Faites vos sites avec des formulaires electroniques :
> http://www.diaam.com


     

Date sent:      	Fri, 17 Nov 2000 09:01:36 +0100
From:           	Guillaume Desnoix <guillaume-desnoix@memoire.com>
To:             	java@u-strasbg.fr
Subject:        	Re: JOptionPane.showOptionDialog, bouton par defaut
Send reply to:  	java@u-strasbg.fr


Herve AGNOUX:
> Il me semble que la tabulation déplace le focus, mais pas le
> bouton par défaut, activé par la touche <ENTREE>.

Effectivement.

> Or je m'excuse, sous windows, la tabulation déplace le focus ET le
> bouton par défaut.

Oui, M$ confond les notions de bouton par defaut et de bouton avec
focus.

> (ce qui semble normal, puisque le bouton qui a
> le focus reçoit la touche, non ?

Non, les raccourcis ont priorite, et <ENTREE> est un raccourci pour
l'activation du bouton par defaut.

> comment ce bogue peut-il se produire avec swing !?)

Ce n'est pas une bogue ;-)

> Connaissez-vous un workaround ?

Oui. L'utilisateur utilise la touche <ESPACE>.

Guillaume

     

From:           	"Herve AGNOUX" <hagnoux@mail.club-internet.fr>
To:             	java@u-strasbg.fr
Date sent:      	Fri, 17 Nov 2000 11:07:48 +0100
Subject:        	Re: JOptionPane.showOptionDialog, bouton par defaut
Priority:       	normal
Send reply to:  	java@u-strasbg.fr

Le 17 Nov 00, Guillaume Desnoix a écrit :

> 
> Ce n'est pas une bogue ;-)
> 

Mouaaiis... Suite à ton message et après des essais plus 
approfondis, je dois reconnaître que si je donne à mon appli le look and
feel "windows", alors le comportement devient celui de n'importe quelle
appli windows : le bouton par défaut se déplace avec appui sur <TAB>. Je
lui redonne le look and feel Java, et hop, le comportement redevient tel
que tu le décris.

Décidément, Java, c'est génial, et tu es son prophète ;-)


--
Hervé AGNOUX  hagnoux@mail.club-internet.fr
Faites vos sites avec des formulaires electroniques :
http://www.diaam.com


C'est fini ! Retour à l'accueil de la pseudo-archive