2017-08-01 3 views
0

J'ai cette fonction:état clair pour SWT Text Widget

public static void changeState(Text control,final int style) 
{ 
    if (SWT.ENABLED == (style & SWT.ENABLED)) { 
     MyService.setState(control, SWT.ENABLED); 

    } 
    if (SWT.DISABLED == (style & SWT.DISABLED)) { 
     MyService.setState(control, SWT.DISABLED); 

    } 
    if(SWT.READ_ONLY == (style & SWT.READ_ONLY)){ 
     MyService.setState(control, SWT.READ_ONLY); 
    } 
} 

Je veux effacer l'état actuel du widget avant de l'autre État à ce sujet.

J'ai fait un objet texte pour lequel j'ai mis l'état inactif et après j'ai essayé de le mettre à read_only mais cela n'a pas fonctionné et c'est pourquoi j'essaye de faire une fonction qui efface l'état actuel être capable de changer d'état pour le même objet.

Comment est-ce que je devrais faire ceci?

Peut-être qu'il y a une fonction qui fait cela mais je ne pouvais pas en trouver un.

Répondre

1

Il n'existe pas d'indicateurs tels que SWT.ENABLED ou SWT.DISABLED.

Vous activer/désactiver un contrôle à l'aide

control.setEnabled(boolean); 

Vous modifiez la lecture seule état d'un contrôle Text utilisant

control.setEditable(boolean); 

Notez que les bits de style la plupart des autres ne peuvent pas être modifiés une fois qu'un contrôle a été créé.

+0

Et comment puis-je définir pour un widget de ne pas avoir de style? – GritcoAndreea

+1

Qu'entendez-vous par «pas de style»? De nombreux bits de style ne peuvent pas être modifiés une fois le contrôle créé. –