Est-il possible de modifier le délai de l'infobulle dans SWT? Dans Swing, j'utiliserais normalement les méthodes dans Tooltip.sharedInstance(). Cela semble rompre avec SWT.Définition des retards de l'info-bulle SWT
1
A
Répondre
2
Non, pas autant que je sache. Les info-bulles sont étroitement couplées aux infobulles du système natif sous-jacent, vous êtes donc bloqué avec leur comportement.
Mais il y a un autre moyen, vous devez implémenter les info-bulles vous-même. Avec cette approche, vous pouvez créer des infobulles très complexes.
class TooltipHandler {
Shell tipShell;
public TooltipHandler(Shell parent) {
tipShell = new Shell(parent, SWT.TOOL | SWT.ON_TOP);
<your components>
tipShell.pack();
tipShell.setVisible(false);
}
public void showTooltip(int x, int y) {
tipShell.setLocation(x, y);
tipShell.setVisible(true);
}
public void hideTooltip() {
tipShell.setVisible(false);
}
}
3
Vous pouvez utiliser les éléments suivants:
ToolTip tip = new ToolTip(shell, SWT.BALLOON | SWT.ICON_INFORMATION);
tip.setText("Title");
tip.setMessage("Message");
tip.setAutoHide(false);
Ensuite, chaque fois que vous voulez montrer, utilisez tip.setVisible(true)
et commencer une minuterie, qui fera appel tip.setVisible(false)
après un certain temps.
tip.setAutoHide(false)
force la pointe à rester jusqu'à ce que vous appelez tip.setVisible(false)
.
5
J'utilise quelque chose comme ci-dessous. Merci à @Baz :)
public class SwtUtils {
final static int TOOLTIP_HIDE_DELAY = 300; // 0.3s
final static int TOOLTIP_SHOW_DELAY = 1000; // 1.0s
public static void tooltip(final Control c, String tooltipText, String tooltipMessage) {
final ToolTip tip = new ToolTip(c.getShell(), SWT.BALLOON);
tip.setText(tooltipText);
tip.setMessage(tooltipMessage);
tip.setAutoHide(false);
c.addListener(SWT.MouseHover, new Listener() {
public void handleEvent(Event event) {
tip.getDisplay().timerExec(TOOLTIP_SHOW_DELAY, new Runnable() {
public void run() {
tip.setVisible(true);
}
});
}
});
c.addListener(SWT.MouseExit, new Listener() {
public void handleEvent(Event event) {
tip.getDisplay().timerExec(TOOLTIP_HIDE_DELAY, new Runnable() {
public void run() {
tip.setVisible(false);
}
});
}
});
}
}
Exemple d'utilisation: SwtUtils.tooltip(button, "Text", "Message");
Questions connexes
- 1. JQuery - retards pendant l'animation
- 2. Réglage des couleurs dans SWT
- 3. SWT Définition de la hauteur de colonne ou insertion d'une nouvelle ligne
- 4. Gestion des retards lors de la récupération de fichiers à partir du serveur distant en PHP
- 5. Composant SWT - problème de redessiner
- 6. JFreeChart avec SWT
- 7. Obtenir la liste des gestionnaires de tâches via SWT?
- 8. Eclipse SWT - Dilemme de programmation Java
- 9. Swing versus SWT
- 10. Comparer SWT avec SWING
- 11. SWT: Système VirtualKeyBoard
- 12. SWT en représentation BMML
- 13. SWT AuthenticationListener Eclipse
- 14. SWT Lien Texte>
- 15. programmation Java SWT
- 16. Définition des attributs QTMovie
- 17. Comment gérer les retards sur la connexion Telnet par programme?
- 18. Inspecter l'application SWT lors de l'exécution?
- 19. SWT et Webstart sur Mac
- 20. Des liens HTML peuvent-ils être ajoutés à SWT StyledText?
- 21. Formes de widget personnalisées dans SWT
- 22. SWT/JFace: supprime les widgets
- 23. SWT update/redraw/layout prblem
- 24. Définition des touches de raccourci dans Textmate
- 25. msbuild, définition des symboles de compilation conditionnelle
- 26. Définition des autorisations de dossier sur Vista
- 27. Définition des propriétés de profil dans asp.net
- 28. Définition de location.hash dans des cadres
- 29. Définition des paramètres de sortie XslCompiledTransform
- 30. Définition des paramètres de mémoire C#