IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

[JScrollPane]Accelerer le scroll via molette de la souris


Sujet :

AWT/Swing Java

  1. #1
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Points : 909
    Points
    909
    Par défaut [JScrollPane]Accelerer le scroll via molette de la souris
    Bonjour,

    J'ai chercher mais je n'ai que trouvé pour le scroll via la barre et ca s'est deja fait .
    Donc : Comment modifier l'increment de scroll via la molette ?


    Marci d'avance ^^

  2. #2
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Salut,

    Petit début de réponse à ton problème :
    J'ai un peu cherché, mais je connaissais déjà les MouseListener qui te permettent de "savoir" ce qui est arrivé à ta souris (comme un clic droit ou gauche ou...) et donc, je me suis dis que tu devais avoir ça aussi pour la roulette... Et là bingo
    Il te faut utiliser l'interface MouseWheelListener qui va te renvoyer un MouseWheelEvent (cf doc de Sun : http://java.sun.com/j2se/1.4.2/docs/...lListener.html) et donc, tu pourras connaitre le nombre de "rotation" de ta molette et donc par là même savoir de combien il te faut augmenter l'incrément du scroll..

    Si c'est pas très clair, dis moi

    Bonne chance

  3. #3
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Points : 909
    Points
    909
    Par défaut
    si c'est bon merci ^^ .. je me demandais juste si le sroll Pane n'avais pas une méthode (passer par le listener était ma seconde solution)

  4. #4
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Points : 5
    Points
    5
    Par défaut Faire descendre ou monter d'une page un JScrollPane avec molette de la souris
    Si tu veux faire que le pas de la molette soit augmenté de façon à faire avancer (ou reculer) d'une page le scrollBar du JScrollPane à l'aide de la molette (un peu comme si on faisait à chaque cran de molette l'appel à PgUp ou PgDown), voici le code dont tu as besoin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    JScrollPane scrollPane = new JScrollPane() ;
    scrollPane.setViewPortView(myJTable); // JTable associée au scrollPane
     
    myJTable.addMouseWheelListener(new MouseWheelListener() {
    public void mouseWheelMoved(MouseWheelEvent event) {
          final JScrollBar scrollBar =  scrollPane.getVerticalScrollBar();
          final int rotation = event.getWheelRotation();
          if (scrollBar!=null) {
             scrollBar.setValue(scrollBar.getValue()
             + (scrollBar.getBlockIncrement(rotation)*rotation)
             - (scrollBar.getBlockIncrement()*5*rotation));
             // dispatchEvent(event); pas nécessaire
          }
       }
    });
    Avec ça, tu avanceras où reculeras beaucoup plus vite lors de l'action sur la molette de la souris.

    Pour être plus objet, il est tout simplement possible d'étendre la classe JScrollPane en y implémentant MouseWheelListener et d'abonner le JTable à cette implémentation.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    public class MyScrollPane extends JScrollPane implements MouseWheelListener {
     
       // constructeur
       public MyScrollPane(final JTable myTable) {
            setViewportView(myTable);
            setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
            myJTable.addMouseWheelListener(this);
       }
     
       // from MouseWheelListener
       public void mouseWheelMoved(MouseWheelEvent event) {
          final JScrollBar scrollBar = getVerticalScrollBar();
          final int rotation = event.getWheelRotation();
          if (scrollBar!=null) {
             scrollBar.setValue(scrollBar.getValue()
    	 + (scrollBar.getBlockIncrement(rotation)*rotation));
          }
       }
     
    } // end of class
    Là, ça fait tout de suite plus clean ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/06/2015, 13h50
  2. Molette de la souris et JScrollPane
    Par reno_tidus dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 15/10/2007, 15h00
  3. [JScrollPane]Sélection et scrolling
    Par boromir73 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 08/05/2007, 09h51
  4. [BoxLayout & JScrollPane] pas de scroll molette ?
    Par Lady dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 07/05/2007, 16h55
  5. Un JScrollPane qui ne scrolle pas !
    Par SheikYerbouti dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 30/09/2006, 23h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo