Question similaire , mais pas exactement la même chose. P>
Considérez le cas d'utilisation suivant. J'ai deux tables que je connais sont de la même largeur et j'ai les mêmes largeurs de colonne. Et je souhaite mettre en œuvre une sorte de synchroniseur de défilement afin que lorsque l'utilisateur défile une table (horizontalement), l'autre table fait défiler le même emplacement. P>
EDIT: P>
sur le forum Eclipse Il semble y avoir le même question et certaines idées de travail, mais aucune résolution. p>
EDIT:
J'ai découvert ce comportement sur Windows P> table.showcolumn () code> est utile, mais le défilement n'a que la granularité de la largeur de la colonne. Mais je veux un contrôle plus précis de l'emplacement de défilement. P>
3 Réponses :
J'ai bien peur que je ne puisse pas obtenir un résultat satisfaisant dans Windows Vista / 7 soit, c'est que je sentais que je me rappelais. P>
Je pense que vous devrez saisir la barre de défilement horizontal code> S à l'aide de C'est là que je suis coincé. D'une manière ou une fois, vous devez notifier soit la table Incidemment, gardez à l'esprit que le parent code> Scrollbar code> s parent (type J'espère que cela vous donne quelques idées et vous aide à trouver une solution. Si oui, laissez-moi savoir, car cela me dérange maintenant maintenant! P> TABLE.GETHORIZONTALBAR () CODE>. Ensuite, vous pouvez spécifier
scrollbar.setselection () code> pour le faire passer à une position spécifiée. P>
code> ou la barre de défilement
code> que la valeur a changé. J'ai tout essayé de
update () code> à
notifylistener () code>, mais pas de dés. Il semble que c'est simplement une question de mise en place, mais
mise en page () code> n'a aucun effet, non plus. P>
défilable code>) n'est pas un
défiléCosite code> comme je l'avais attendu, mais est en fait la table
code> elle-même. p>
Je ne pense pas que la mise à jour () ou la mise en page () va travailler. Il me semble que Sselection () ne fait que bouger le pouce et non rien sur la table. Cela semble certainement comme une faille de conception, mais je me demande ce que nous pouvons faire à ce sujet.
Je suis d'accord. C'est pourquoi j'essayais d'exécuter un notifylistener () code>, dans l'espoir que je pourrais tromper la barre de défilement dans la mise à jour de la position horizontale de la table en fonction de la "sélection" du pouce. Pas de dé. Il convient de noter que, en modifiant la sélection, le décalage de défilement devient foiré: vous pouvez ensuite faire défiler les limites de la table. Très étrange en effet. Peut-être poster un rapport de bogue sur SWT?
C'est un peu un coup long, mais peut-être simuler un événement de souris à une position pourrait faire cela? Ne devrait pas être trop difficile pour obtenir la taille de la table et partir de là.
Cliquez physiquement en cliquant sur la barre de défilement, est traitée à un niveau différent de Java ou SWT. L'envoi d'un événement de souris ne provoquera qu'une notification sur la barre de défilement code>; Il ne passera pas réellement là-bas là-bas à moins que vous n'ayez vos mains sabulées avec JNI / JNA. Si vous êtes en panne de cette rue, vous pourriez également simplement écrire le code natif pour mettre à jour la barre de défilement manuellement au lieu d'essayer de "cliquer".
avoir piqué dans la source de défilement code> Un peu, on dirait qu'il existe de nombreux bugs (Windows) qui ont été surmontés à un point ou à un autre. Cela peut être un autre, bien que vous n'ayez pas mentionné votre système d'exploitation, ni Paul, il est donc difficile de dire. P>
Tous les fonctions "Modifier la position de la barre de défilement" finissent par appeler Aucune de cela résout votre problème. Heureusement, la même source suggère également une solution: p>
curseur. P>
Vous devez réilembler tout le comportement de la barre de défilement dans le curseur, mais une fois terminé, celui-ci doit em> vous donner le contrôle (HAR) que vous voulez. Avec un peu de chance. OTOH, vous pouvez rencontrer exactement le même bogue OS (si vous le souhaitez) et être de retour à la case carrée. P>
À ce moment-là, vous l'enregistrez définitivement en tant que bogue Eclipse UI. P>
PS: Avez-vous cherché le Eclipse Bugzilla pour quelque chose de similaire? Poker autour d'un peu tourné Ce bogue lié à la barre de défilement étant sorties de synchronisation avec une vue d'arborescence dans le navigateur (sur PC Linux-motif, mais fonctionne bien dans Windows). Je soupçonne que vous trouverez des problèmes similaires si vous creusez un peu plus. P> Setscrollinfo code> qui est package privé. Je soupçonne que l'intention est que cela met à jour réellement les choses comme vous le souhaitez. P>
La méthode Fait défiler le contenu de sorte que le point spécifié dans le contenu soit dans le coin supérieur gauche. Si aucun contenu n'a été défini, rien ne se produira. Les valeurs négatives seront ignorées. Les valeurs supérieures à la distance de défilement maximale entraîneront le défilement à la fin de la barre de défilement. P>
blockQuote> setorigin (x, y) code> dans
défiléCosite
devrait aider: P>
Suggestion intéressante. Jettera un coup d'oeil.
Cela a fonctionné pour moi. Notez que les commandes doivent avoir été aménagées avant d'appeler SetOrigin () même si le contenu a été défini dans le fichier défiléCosite. Si la méthode est appelée avant la mise en page, rien ne se passera.
Avez-vous trouvé la solution?