Couleur d'arrière-plan de component swing jtextfield ne pas devenir 'grisé' lorsqu'il est désactivé après la couleur d'arrière-plan a été changé avant
Normalement lorsque vous utilisez setEditable(false)
ou setEnabled(false)
, l'arrière-plan/premier plan de la couleur de la component swing jtextfield devient 'grisé'. Toutefois, si une couleur d'arrière-plan avait déjà été réglée à l'aide de setBackground(color)
(par exemple pour white
), puis l'appel à setEnabled
ou setEditable
n'affectera pas la couleur d'arrière-plan plus. Au lieu de cela, elle est remplacée par la déjà mis en couleur.
En WinForms (.NET) ce problème est résolu par les "réinitialiser" la couleur d'arrière-plan à un non-valeur par défaut de substitution, à savoir Color.Empty
. Que serait la cause d'une zone de texte pour retrouver le comportement standard. Cependant, je n'ai pas trouvé de similaire "valeur par défaut" pour le component swing jtextfield. Comment puis-je revenir sur le component swing jtextfield pour utiliser les couleurs par défaut et passer automatiquement de la couleur quand il est désactivé ou réglé sur lecture seule? La couleur de premier plan a un problème similaire.
OriginalL'auteur dialer | 2013-03-28
Vous devez vous connecter pour publier un commentaire.
Vous devez réinitialiser la couleur de fond du champ à sa valeur par défaut.
La valeur par défaut de l'INTERFACE utilisateur délégué, est à la recherche d'un
UIResource
afin de déterminer le bon remplissage à utiliser pour le champ donné (basé sur la installé le regard et le sentir).Vous pouvez réinitialiser la couleur d'arrière-plan à l'aide de:
JTextField#setBackground(UIManager.getColor("TextField.background"))
Alternativement, vous pouvez créer un personnalisé
UIResource
pour votre arrière-plan personnalisé.Prendre un coup d'oeil à
ColorUIResource
pour plus de détails.ou utiliser le component swing jtextfield.setDisabled.... (JSpinner, JFormattedTextField, modifiable JComboBox) au lieu de tout woodoo
J'ai seulement regardé un JTextComponent, mais aussi loin que je peux voir, il ne vous permet de régler les handicapés couleur du texte, d'ailleurs, pourquoi rendre les choses faciles 😉
aaach je miss_read, hmmm droit maintenant que j'ai vu avant.... au lieu de retour...
Cela fonctionne, quand vous l'appelez dans cet ordre:
textField.setBackground(UIManager.getColor(...)); textField.setEditable(false);
, mais pour une raison quelconque, le fond est encore blanc lorsque vous appelezsetEditable(false)
premier. Que, fonctionne de toute façon.OriginalL'auteur MadProgrammer
Utiliser un PropertyChangeListener:
OriginalL'auteur camickr