Qu'est-ce exactement ne getValueIsAdjusting faire?
Comme vous le savez, sans l'aide de !getValueIsAdjusting
lorsque vous sélectionnez une ligne dans une jtable (en cliquant sur) la sélection de l'événement de changement de feu à deux reprises. Il ne se produit pas si vous sélectionnez une ligne à l'aide de la flèche du clavier. Pour le résoudre, vous vérifiez si getValueIsAdjusting
renvoie la valeur false.
Ma question est: pourquoi ne l'événement se déclenche deux fois si je sélectionne une ligne en cliquant sur elle, mais pas lorsque vous utilisez les flèche du clavier? Et ce n'getValueIsAdjusting faire pour le résoudre?
Avez-vous au moins lu la javadoc de la méthode, et le lien javadoc de setValueIsAdjusting()? Ce que tu ne comprends pas dans cette documentation. Je ne vois pas comment il pourrait être plus clair. docs.oracle.com/javase/6/docs/api/javax/swing/event/...
OriginalL'auteur CodeBlue | 2012-06-02
Vous devez vous connecter pour publier un commentaire.
Comme le javadoc qui JB Nizet lié aux états,
getValueIsAdjusting()
vérifie si un événement spécifique (un changement) fait partie d'une chaîne, si oui il sera de retourtrue
. Il retournera seulement lesfalse
lorsque l'événement spécifié est la finale de la chaîne.Dans votre cas, la sélection d'une ligne en cliquant effectivement les feux de deux événements: une
mouseDown
etmouseUp
de l'événement et les deux sont envoyés à votre écouteur d'événement. Si vous avez correctement mettre en œuvregetValueIsAdjusting()
de retour à chaque fois que la valeur esttrue
, vous ne loi sur la finale de l'événement de la chaîne, qui est lemouseUp
événement qui se déclenche lorsque vous relâchez le bouton gauche de la souris.La Java des Tutoriels inclure un exemple qui capture les événements, vous pouvez l'utiliser pour vous connecter à la sélection des événements et de l'expérimenter vous-même. Retirez le retour sur le
event.getValueIsAdjusting()
vérifier pour vous connecter chaque événement est déclenché.Merci pour votre explication. Je l'ai eu plus clair maintenant. Mais une chose de plus, une chaîne d'événements, pourquoi mouseDown et mouseUp, pas gainFocus et lostFocus?
nvm j'ai eu aujourd'hui. merci de me faire clair 😀
Je pense, est en fait lié au fait que lorsque vous cliquez sur la table, elle devra sélectionner une cellule (ligne et colonne) d'abord, puis l'ensemble de la ligne, il y a donc deux mandats consécutifs de lignes sélectionnées.
OriginalL'auteur Lilienthal
Le code ci-dessus montre ce que getValueIsAdjusting faire, sans ces méthode un événement peut être appelé par exemple. deux fois (ça dépend des cas).
Sortie sans getValueIsAdjusting boucle après avoir cliqué sur un élément de la JList:
aaaaaaa
aaaaaaa
avec boucle:
aaaaaaa
OriginalL'auteur Tomasz Waszczyk