Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème évènement AdjustmentListener avec un JScrollPane

    10 mars 2011 à 19:59:24

    Bonjour,
    Je voudrais savoir quand l'utilisateur utilise le scrollpane si il scroll vers le bas ou le haut, via l'AdjustmentListener.
    Sauf que ce dernier me retourne toujours la valeur d'AdjustmentEvent.TRACK et non de AdjustmentEvent.UNIT_INCREMENT.

    Si c'est impossible avec adjustmentEvent.UNIT_INCREMENT, comment faut-il faire ?

    public class JEditeur extends JFrame {
    ............. //déclaration des objets
    private JScrollPane scrollpane;
    
       public JEditeur(String title)
       { 
    		super(title);
    		panel = new JPanel();
                    ......................
                   JScrollBar vBar = scrollpane.getVerticalScrollBar();
    		vBar.setUnitIncrement(1);
                   AdjustmentListener scroll_l = new Ecouteur(this);
                   vBar.addAdjustmentListener(scroll_l);
       }
    }
    
    public class Ecouteur implements AdjustmentListener {
    
    	private JEditeur jf;
    	
    	public Ecouteur (JEditeur jtf_m)
    	{	
    		this.jf=jtf_m;
    	}
    
    public void adjustmentValueChanged(AdjustmentEvent e) 
        {
        	
            if (e.getValueIsAdjusting()) 
            {
                return;
            }
            
            
            String res = e.paramString();
            
            System.out.println(res);
            /* retourne : 
             ADJUSTMENT_VALUE_CHANGED,adjType=TRACK,value=135,isAdjusting=false
             ADJUSTMENT_VALUE_CHANGED,adjType=TRACK,value=136,isAdjusting=false
             ADJUSTMENT_VALUE_CHANGED,adjType=TRACK,value=137,isAdjusting=false
             ADJUSTMENT_VALUE_CHANGED,adjType=TRACK,value=138,isAdjusting=false
            */
    
            int type = e.getAdjustmentType();
    
            switch (type) 
            {
              case AdjustmentEvent.UNIT_INCREMENT:
            	  System.out.println("UNIT_INCREMENT"); //ce que je voudrais afficher
                  break;
              case AdjustmentEvent.UNIT_DECREMENT:
            	  System.out.println("UNIT_DECREMENT"); //idem
                  break;
              case AdjustmentEvent.BLOCK_INCREMENT:
            	  System.out.println("BLOCK_INCREMENT");
                  break;
              case AdjustmentEvent.BLOCK_DECREMENT:
            	  System.out.println("BLOCK_DECREMENT");
                  break;
              case AdjustmentEvent.TRACK:
            	  System.out.println("TRACK"); //affiche toujours TRACK
                  break;
            }
        }
    }
    


    Merci d'avance :)
    • Partager sur Facebook
    • Partager sur Twitter

    Problème évènement AdjustmentListener avec un JScrollPane

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown