2010-11-15 6 views
0

Dans mon application RCP éclipse, il y a quelques boutons & quelques zones de saisie & sous le composant Texte. Mon problème est que dès que j'appuie sur l'un des boutons, le curseur commence à clignoter dans le composant de test ci-dessous. Pouvez-vous s'il vous plaît laissez-moi savoir comment résoudre ce problème.Masquage du curseur dans le composant Texte dans l'application Eclipse RCP

J'ai essayé:

  1. mise focus sur false pour le texte.
  2. SWT.READ_ONLY pour le texte.
  3. code:

    Cursor cursor = new Cursor(parent.getDisplay(), SWT.CURSOR_NO); 
    protocolFilterDescription.setCursor(cursor); 
    

Rien ne semble se débarrasser de ce curseur inutile.

protocolFilterDescription = new Text(parent, SWT.NONE | SWT.READ_ONLY ); 
FormData protocolFilterDescriptionLData = new FormData(); 
protocolFilterDescriptionLData.left = new FormAttachment(0, 1000, 650); 
protocolFilterDescriptionLData.top = new FormAttachment(0, 1000, 290); 
protocolFilterDescriptionLData.width = 450; 
protocolFilterDescriptionLData.height = 12; 
protocolFilterDescription.setLayoutData(protocolFilterDescriptionLData); 
protocolFilterDescription.setForeground(new Color(parent.getDisplay(), 
    204, 153, 0)); 
protocolFilterDescription.setBackground(Display.getCurrent() 
    .getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); 
protocolFilterDescription.setFont(new Font(parent.getDisplay(),"Verdana", 
    6, 1)); 
protocolFilterDescription 
    .setText("captured"); 

Répondre

2

Vous devez définir l'objet d'un autre composant SWT à true pour enlever le focus du composant de texte.

Vous aurez probablement à faire cela dans un ActionListener.

+0

J'ai essayé la méthode setFocus sur d'autres composants mais le curseur clignote toujours dans la zone de saisie – user508435

+0

@ user508435: D'après vos autres commentaires, pourquoi utilisez-vous des composants texte? Si vous souhaitez simplement afficher du texte, vous pouvez définir la valeur de Editable sur false. –

+0

Merci Gilbert pour la réponse. En fait, je ne vois aucun curseur dans le code affiché ci-dessus car je l'ai changé pour Label. Après avoir créé une étiquette maintenant, le curseur apparaît dans la zone de saisie (un autre composant Texte où l'utilisateur saisit du texte). J'ai essayé de faire cette boîte de saisie setEditable à false mais toujours le curseur est vu. Voyez-vous un moyen plus simple en dehors de cette solution: http: //dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/ Snippet242.java – user508435

2

Si vous souhaitez supprimer complètement le curseur du contrôle Texte (ce qui implique l'impossibilité d'y effectuer une sélection, etc.), essayez d'appeler setEnabled (false).

En outre, une telle exigence suggère que vous n'avez peut-être pas besoin du tout de composant Text et que vous puissiez utiliser Label à la place.

+0

le changer en une étiquette fonctionne bien, mais le curseur commence à clignoter dans une boîte de saisie après avoir appuyé sur un bouton. Est-il possible de supprimer complètement le curseur de tous les enfants du contrôle? – user508435

+0

J'ai 4 boîtes d'entrée de ce type. Merci d'avance – user508435

+0

Y a-t-il une meilleure façon de cacher que ceci: http: //dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.swt.snippets/src/org/eclipse/swt /snippets/Snippet242.java – user508435