2009-05-14 7 views
1

Pouvez-vous désactiver un JButton sans griser le bouton lui-même? Lorsque vous utilisez setEnbaled (false), le bouton est désactivé et devient gris. Est-il possible de désactiver le bouton mais de rendre l'apparence du bouton toujours la même?JButton question

+3

Je ne ferais pas cela du tout parce que je ne peux pas voir comment un utilisateur ne serait pas confus. Peut-être pouvez-vous nous dire pourquoi vous en avez besoin et il existe une autre façon de le faire. – ordnungswidrig

+0

D'accord. Le bouton * semble * désactivé pour une raison. Sinon, l'utilisateur cliquera dessus en espérant que quelque chose se produise. Et quand ça n'arrive pas, ils vont cliquer dessus * encore * et * encore * et se plaindre que votre application est cassée. –

Répondre

3

Vous pouvez ignorer la pression du bouton dans votre ActionListener si un indicateur est défini; Cependant, vous ne devriez pas désactiver le bouton sans le montrer comme désactivé: cela ne fera que compliquer les utilisateurs de votre application.

1

Je suggère de définir un ButtonModel avec setArmed et setPressed remplacés. La manière exacte dont vous le remplacez dépend exactement de ce que vous voulez qu'il fasse: devrait-il être pressé lorsqu'il est pressé, par exemple? Définissez uniquement le ButtonModel une fois pour un JButton. Ajoutez ou répétez l'état sur le ButtonModel pour indiquer comment vous voulez qu'il se comporte à un moment donné. De toute évidence, les interfaces graphiques avec un comportement non standard risquent de perturber les utilisateurs.