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

JavaFX Discussion :

Utilisation d'événements tactiles JavaFX à l'intérieur d'une JFame


Sujet :

JavaFX

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 3
    Par défaut Utilisation d'événements tactiles JavaFX à l'intérieur d'une JFame
    Bonjour,
    Je suis actuellement en stage de développement informatique et je rencontre un petit problème depuis quelques jours concernant l’utilisation de Javafx (utilisation de gestes multitouch) avec Java. La détection des mouvements de zoom et de défilement ne se font pas correctement lorsque mes composants javafx sont inclus dans une JFrame. Je pourrais tout faire en Javafx mais malheureusement je travaille sur une grosse application Java développé en swing. J’ai trouvé de nombreux tutoriels sur internet expliquant comment inclure du Javafx dans une JFrame mais pas sur la gestion des évènements de Javafx dans une JFrame.

    Ma question est donc la suivante : Est-il possible de détecter ces mouvements lorsque ces composants sont inclus dans un JFXPanel lui-même inclus dans une JFrame ?

    Je vous ai mis en fichier joints les 2 codes développés. Le premier contient un mix de Java et javafx et le deuxième contient uniquement du JavaFx.

    Je vous remercie

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    import javafx.application.Application;
    import javafx.beans.property.DoubleProperty;
    import javafx.beans.property.SimpleDoubleProperty;
    import javafx.event.EventHandler;
    import javafx.scene.Group;
    import javafx.scene.Scene;
    import javafx.scene.input.ScrollEvent;
    import javafx.scene.input.ZoomEvent;
    import javafx.scene.paint.Color;
    import javafx.scene.text.Font;
    import javafx.scene.text.Text;
    import javafx.stage.Stage;
     
     
    public class JavaFX extends Application {
     
    	final DoubleProperty zoomProperty = new SimpleDoubleProperty(200);
     
    	public void start(Stage stage) throws Exception {
     
     
    		Group  root  =  new  Group();
    		Scene  scene  =  new  Scene(root, Color.ALICEBLUE);
    		final Text  text  =  new  Text();
     
    		text.setX(60);
    		text.setY(150);
    		text.setFont(new Font(25));
    		text.setText("Mon Composant");
     
    		root.getChildren().add(text);
    		scene.setOnZoom(new EventHandler<ZoomEvent>(){
     
    			public void handle(ZoomEvent event) {
    				text.setFont(new Font(text.getFont().getSize()*event.getZoomFactor()));
     
     
    			}
     
    		});
     
    		text.addEventHandler(ScrollEvent.ANY, new EventHandler<ScrollEvent>() {
     
    			public void handle(ScrollEvent event) {
    				text.setTranslateX(text.getTranslateX() + ((ScrollEvent) event).getDeltaX());
    				text.setTranslateY(text.getTranslateY() + ((ScrollEvent) event).getDeltaY());
     
    			}
     
    		});
     
    		stage.setScene(scene);
    		stage.setWidth(300);
    		stage.setHeight(300);
    		stage.show();
     
    	}
     
    	public static void main(String[] args) {
    		launch(args);
    	}
    }
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    import javafx.application.Platform;
    import javafx.embed.swing.JFXPanel;
    import javafx.event.EventHandler;
    import javafx.scene.Group;
    import javafx.scene.Scene;
    import javafx.scene.control.ScrollPane;
    import javafx.scene.input.ScrollEvent;
    import javafx.scene.input.ZoomEvent;
    import javafx.scene.paint.Color;
    import javafx.scene.text.Font;
    import javafx.scene.text.Text;
     
    import javax.swing.JFrame;
    import javax.swing.SwingUtilities;
     
    //Javafx dans une Jframe
    public class JavaFXJFrame {
    	static Text text = new Text("Hello World");
    	static ScrollPane scrollPane;
     
    	private static void initAndShowGUI() {
     
    		// Création de la JFrame
    		JFrame frame = new JFrame("FX");
     
    		// Panel permettant d'inclure les composants JavaFX
    		final JFXPanel fxPanel = new JFXPanel();
    		frame.add(fxPanel);
    		frame.setVisible(true);
    		frame.setSize(300, 300);
    		frame.setLocationRelativeTo(null);
    		Platform.runLater(new Runnable() {
     
    			public void run() {
    				initFX(fxPanel);
    			}
    		});
    	}
     
    	private static void initFX(JFXPanel fxPanel) {
     
    		Scene scene = createScene();
    		fxPanel.setScene(scene);
    	}
     
     
    	// Creation de la scène
    	private static Scene createScene() {
     
    		Group  root  =  new  Group();
     
    		final Text  text  =  new  Text();
     
    		text.setX(60);
    		text.setY(150);
    		text.setFont(new Font(25));
    		text.setText("Mon Composant");
     
    		root.getChildren().add(text);
    		Scene  scene  =  new  Scene(root, Color.ALICEBLUE);
    		// Ajout du listener Zoom. Problème de non détection de l'évenement
    		scene.setOnZoom(new EventHandler<ZoomEvent>(){
     
    			public void handle(ZoomEvent event) {
    				text.setFont(new Font(text.getFont().getSize()*event.getZoomFactor()));
     
     
    			}
     
    		});
    		// Ajout du listener de défilement. Problème il faut effectuer le geste du zoom pour que l'évenement soit pris en compte
    		text.addEventHandler(ScrollEvent.ANY, new EventHandler<ScrollEvent>() {
     
    			public void handle(ScrollEvent event) {
    				text.setTranslateX(text.getTranslateX() + ((ScrollEvent) event).getDeltaX());
    				text.setTranslateY(text.getTranslateY() + ((ScrollEvent) event).getDeltaY());
     
    			}
     
    		});
     
     
     
    		return scene;
     
     
    	}
     
    	public static void main(String[] args) {
    		SwingUtilities.invokeLater(new Runnable() {
     
    			public void run() {
    				initAndShowGUI();
     
    			}
    		});
    	}
    }
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Comment utiliser l'évènement de triple click
    Par croquignole dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 27/11/2007, 08h31
  2. Utiliser un écran tactile
    Par ceidre dans le forum Delphi
    Réponses: 4
    Dernier message: 17/10/2006, 22h04
  3. [C#] utilisation d'évênements [nouveau problème]
    Par legillou dans le forum Windows Forms
    Réponses: 10
    Dernier message: 18/08/2006, 09h37
  4. Réponses: 5
    Dernier message: 09/05/2006, 11h03
  5. [COM] Comment utiliser les événements Word ?
    Par Laurent Dardenne dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 30/05/2004, 12h38

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