2010-02-26 6 views
2

Je désactive le contrôle org.eclipse.ui.forms.widgets.Hyperlink en appelant simplement hyperLink.setEnabled(false). Cependant, après cela, le lien ne ressemble pas à un contrôle désactivé. Le lien n'est pas grisé (mais je ne peux pas cliquer dessus bien sûr).Pourquoi un lien SWT désactivé n'est-il pas grisé?

La question est: pourquoi le lien n'est pas grisé et que dois-je faire pour griser les liens désactivés?

Répondre

0

avez-vous essayé de définir explicitement le premier plan gris?

vous pouvez utiliser la méthode suivante d'aide:

public static void setEnabled(Link link, boolean enable){ 
    if(link.isEnabled()!=enable){ 
     if(enable) 
      link.setForeground(null); // resets to system's default color 
     else 
      link.setForeground(link.getDisplay().getSystemColor(SWT.COLOR_GRAY)); 
     link.setEnabled(enable); 
    } 
} 
+0

juste essayé. cela marche. mais maintenant je dois redéfinir la couleur, et comment puis-je obtenir la couleur par défaut pour les hyperliens? :) Je ne veux pas demander au contrôle de retourner sa couleur avant-coureur et de le stocker - ce serait une solution compliquée pour une telle chose que nous supposons avoir gratuitement. Probablement, je peux dire qu'Eclipse utilise en quelque sorte le "gris" comme premier plan pour les liens hypertexte désactivés? – javapowered

+0

cela semble bon, mais ne fonctionne pas pour moi. Dans mon éclipse, la couleur par défaut pour les liens activés est "bleu foncé" et "bleu clair" lorsque vous passez la souris dessus. Mais si je mets le premier plan à "nul" alors les liens deviennent noirs et "bleu clair" quand vous survolez. – javapowered

0

apparaissent juste et Hyperlink définir les couleurs par défaut. Vous pouvez également créer un délégué composite et transférer l'interface si elle n'est pas trop grande - c'est probablement préférable.

0

Notez que, en plus de Santosh « s answer, avec Eclipse 4.3 M6, vous pouvez restaurer la couleur par défaut plus facilement, puisque vous avez maintenant:

Une nouvelle constante (SWT_COLOR_LINK_FOREGROUND) a été ajouté qui renverra la couleur native des hyperliens sur toutes les plateformes.

SWT link color

Questions connexes