Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883

    (java) implementare Scroll del mouse

    Ho un'applicazione swing che rappresenta un notepad
    Questo notepad è composta da un JTextPanel inserito in uno scrollPanel, il tutto inserito in un JFrame
    Quando uno scrive del testo tanto da superare le dimensioni del notepad compaiono le classiche barre di scorrimento
    Volevo fare in modo che quando l'utente usa la rotella del mouse, si muova la barre di scorrimento verticale
    C'è un tutorial nel sito della sun che dice comp implementare questa cosa ma usa le api 1.4 mentre io sono costretto ad usare le 1.3.1
    Qualcuno può darmi una mano?

  2. #2
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Forse mi sbaglio (probabile), ma mi pare che gli JScrollPane implementino già questa funzione....
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883
    doh! hai ragione però muovendo la rotella si muove troppo poco lo scorrimento dovrei sapere come dirgli di impostare uno scroll del tipo che se muovi la ruzzola la pagina si muove di 5 righe
    Di default al movimento della ruzzola lo scroll è di una riga

  4. #4
    Potresti implementare un Listener di tipo
    MouseWheelListener che ha un solo metodo
    mouseWheelMoved(MouseWheelEvent e) che viene invocato quando si ruota la rotellina e gestire tu lo spostamento della pagina.
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  5. #5
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Allora il metodo per abilitare/disabilitare lo scroll dal mouse è:
    setWheelScrollingEnabled(boolean) //Spero di aver copiato bene!
    Immagino ci sia anche il metodo per settare lo scrolling, ma bisogna spulciarsi un pò la documentazione!
    Ciao
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  6. #6
    Il metodo per gestire lo scrolling credo non ci sia, ma come diceva prima Zero-2 basta intercettare l'evento di mouse WheelMoved e comportarsi di conseguenza.

    esempio stupido scritto con la fretta di andare a pranzo :

    codice:
      public void mouseWheelMoved(MouseWheelEvent mouseWheelEvent) {
        JScrollBar jbar = p.getVerticalScrollBar();
        int i = jbar.getValue();
        jbar.setValue(i+1);
      }
    gestisci uno scroll molto lento... ovviamente però dovresti fare un if per gestire la rotazione su o giù della rotellina e per ogni barra. A e ricordati di disabilitare lo scroll automatico nel JScrollPane che di default è settato a true


  7. #7
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Mi spiace dovervi contraddire:
    codice:
    JScrollBar jsbV = jScrollPane.getVerticalScrollBar();
    JScrollBar jsbO = jScrollPane.getOrizzontalScrollBar();
    jsbV.setBlockIncrement(int incremento); 
    jsbO.setBlockIncrement(int incremento);
    Una ricerca sul sito sun non fa mai male... :adhone:
    Spero sia quello che cercavi ciao.
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  8. #8
    codice:
    JScrollBar jsbV = JScrollPane.getVerticalScrollBar();
    JScrollBar jsbO = JScrollPane.getHorizontalScrollBar();
    jsbV.setBlockIncrement(int incremento); 
    jsbO.setBlockIncrement(int incremento);
    c'erano un paio di errori di sintassi
    cmq interessante sapere che non devi gestire a mano l'evento

  9. #9
    per curiosità ho provato i metodi setBlockIncrement e sebbene modifichino il block increment non modificano le righe di scroll!

  10. #10
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Ovvio che ci sono degli errori...posto a mamoria e non posso ricordare perfettamente i metodi.
    Non funge quindi eh?
    Interessante se ho tempo do una guardata.
    Ciao
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.