2016-04-24 14 views
12

Mi sembra di aver cercato metà del Web e non ho trovato alcuna soluzione ...
Ho un'applicazione java che visualizza una mappa (diversi paesi, ecc.).
al momento si è in grado di scorrere verso il basso e verso l'alto utilizzando la rotellina del mouse ...
Lo voglio così, che si è in grado di scorrere lateralmente (in orizzontale).
Tutto ciò di cui ho bisogno è un Listener (in Swing o Javafx non importa) che si attiva ogni volta che la rotellina del mouse viene inclinata, senza la necessità di mettere a fuoco la mappa (il passaggio del mouse con il mouse dovrebbe essere sufficiente a mantenere le finestre ancora a fuoco) e senza eventuali barre di scorrimento visibili.Listener scorrimento orizzontale

+1

Che dire di '' node.setOnScroll (new EventHandler() ... ''? Fornisce le coordinate Y e X. –

+0

Non si attiva sullo scorrimento laterale ... – RoiEX

+0

Si è verificato un problema simile una volta. http://stackoverflow.com/questions/12911506/why-jscrollpane-does-not-react-to-mouse-wheel-events JScrollPane non ha reagito ai rotoli della rotellina del mouse –

risposta

2

utilizzando il seguente codice ogni volta che si scorre lateralmente un messaggio viene stampato ...

import javafx.application.Application; 
import javafx.event.Event; 
import javafx.event.EventHandler; 
import javafx.event.EventType; 
import javafx.scene.Scene; 
import javafx.scene.input.ScrollEvent; 
import javafx.scene.layout.BorderPane; 
import javafx.stage.Stage; 


public class Main extends Application { 
    @Override 
    public void start(Stage primaryStage) { 
     try { 
      BorderPane root = new BorderPane(); 
      Scene scene = new Scene(root,400,400); 
      scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm()); 
      primaryStage.setScene(scene); 
      scene.setOnScroll(new EventHandler<ScrollEvent>(){ 

       @Override 
       public void handle(ScrollEvent event) { 
        System.out.println("Scroll:" + event.getDeltaX()); 
       } 
      }); 
      primaryStage.show(); 
     } catch(Exception e) { 
      e.printStackTrace(); 
     } 
    } 

    public static void main(String[] args) { 
     launch(args); 
    } 
} 

Una cosa da considerare: quanto pare quando l'incorporamento di un JFXPanel in un JFrame non è sempre passato l'evento di scorrimento sideway .