Component swing jtextfield setEnabled vs setEditable
Quelle est la différence entre JTextField.setEnabled()
et JTextField.setEditable()
?
Dans mon code j'ai une Instance d'une classe héritée de JTextField
. Mais quand j'ai mis ses biens setEnabled(false)
je peux encore modifier et traiter son contenu dans mon programme. Cependant, quand je définissez sa propriété setEditable(false)
je ne peux plus modifier son texte. Si c'est le cas. Alors quel est le but de setEnabled()
bien ici?
Mon Code pour la classe héritée est:
private static class CCField extends JTextField{
private static final long serialVersionUID = 1L;
public CCField() {
this( DEFAULT_COLUMN_COUNT );
}
public CCField(final int cols) {
super( cols );
}
Ajout d'INFOS
Lorsque j'appelle le setEnabled()
propriété de cette classe, il n'a pas à démontrer un quelconque effet sur le champ de texte et il en reste encore activé. J'ai un conteneur Jcomponent
dans mon code qui ont cette CCField
comme un composant enfant. Donc, lorsque j'essaie de le désactiver à l'aide de setEnabled(false)
il encore modifiable. Alors que quand j'essaie de le désactiver à l'aide setEditable(false)
alors qu'il est désactivé.
C'est comment j'accède à ce textField dans mon conteneur:
JComponent jComp = DDEUtil.getComponent(icTableLayout,icDS);
((JTextField)jComp.getComponent(1)).setEditable(false);
Et ce qui se passe dans DDEUtil.getComponent
est trop complexe, car elle comporte un certain nombre de classes et pas possible de poster ici.
Je me demande, je n'ai pas remplacé toute méthode de ce composant alors pourquoi est-il en montrant ce comportement.
setEnabled(false)
désactive un champ de texte complètement. setEditable(false)
encore, permet de sélectionner et de copier son contenu, mais n'autorise pas la modification de sa valeur.Je pense que peut être une réponse...
Je pense que la vraie question est: pourquoi setEnabled(false) n'est pas hors de mon champ de texte. Mais la coopérative doit mettre plus de code pour avoir une réponse à cette question.
Lorsque j'appelle la setEnabled() de la propriété de cette classe, il n'a pas à démontrer un quelconque effet sur le champ de texte et il en reste encore activé. quelque Chose qui cloche dans le code que vous ne montrant pas 😉 Alors, soit poster un SSCCE ou de les résoudre sans l'aide, personne ne peut deviner qui ligne invisible qui est faux ...
J'ai montrer que chaque chose, sauf
DDEUtil.getComponent
qui est trop grand, complexe et générique, comme il est de générer beaucoup de composants à l'aide de la réflexion.OriginalL'auteur Tariq | 2014-02-11
Vous devez vous connecter pour publier un commentaire.
Dans mon cas
setEditable(false)
est grisonnant le terrain etsetEnabled(false)
pas au vieillissement de la le domaine.Liens Utiles
OriginalL'auteur
Tout
setEnabled(false)
gris le domaine comletely,setEditable(false)
juste l'empêche d'être édité, mais il sera toujours le même aspect.setEditable(false)
est grisonnant le terrain alors quesetEnabled(false)
est de ne rien faire...Je viens d'écrire un exemple, trouvé ici: pastebin.com/myMFiYaJ
Il fonctionne parfaitement, il doit y avoir quelque chose qui cloche dans le code de
CCField
Si cela ne résout pas le problème, mais encore j'ai eu la réponse à ma question réelle c'est à dire Différent de b/w
setEnabled
etsetEditable
Pourriez-vous poster le code complet de CCField? Il serait d'une grande aide
OriginalL'auteur