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 :

Joystick Virtuel en Java


Sujet :

AWT/Swing Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 2
    Points : 4
    Points
    4
    Par défaut Joystick Virtuel en Java
    Bonjour,
    Je cherche a créer un Joystick Virtuel en JAVA, étant débutant en programmation, j'ai commencé par créer un JPanel avec un dessin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public void paintComponent(Graphics g){
    	System.out.println("Je suis executée !");
    	g.setColor(Color.RED);
    	g.fillOval(152, 152, 75, 75);
    	g.setColor(Color.BLUE);
    	g.drawOval(65, 65, 250, 250);
    	}
    ça affiche bien l'apparence d'un Joystick, cependant voilà, maintenant le plus dur reste à faire ... Réussir à déplacer le fillOval avec la souris à l'interieur du cercle. J'imagine que je dois utiliser MouseListener mais je vous avoue que je ne sais pas trop par quoi commencer, quelqu'un aurait-il un petit tuto sous la main?

    J'ai trouvé un topic traitant de Joystick mais peu d'aide dessus. http://www.developpez.net/forums/d37...joystick-java/

    Merci pour toute aide,
    Cordialement,
    Hellscream360

  2. #2
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Bonjour,

    En effet il te faudrait un listener sur ton JPanel.
    Exemple :
    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
    package org.k.developpez.forum;
     
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseMotionListener;
     
    import javax.swing.JPanel;
     
    public class JoystickPanel extends JPanel {
    	private int xCenter;
    	private int yCenter;
    	private int maxXDistenceToCenter;
    	private int maxYDistenceToCenter;
     
    	public static void main(String[] args) {
    		JoystickPanel panel = new JoystickPanel();
    		panel.addMouseLsitener(panel);
    	}
     
    	private void addMouseLsitener(JoystickPanel panel) {
    		panel.addMouseMotionListener(new MouseMotionListener() {
     
    			@Override
    			public void mouseMoved(MouseEvent event) {
    				int xRelativeToJoystickCenter = event.getX() - JoystickPanel.this.getXCenter();
    				int yRelativeToJoystickCenter = event.getY() - JoystickPanel.this.getYCenter();
    				int percentageX = (xRelativeToJoystickCenter * 100)/JoystickPanel.this.getMaxXDistenceToCenter() ;
    				int percentageY = (yRelativeToJoystickCenter * 100)/JoystickPanel.this.getMaxYDistenceToCenter() ;
    				// Utiliser les valeurs obtenues (les stocker ?)
    			}
     
    			@Override
    			public void mouseDragged(MouseEvent event) {
     
    			}
    		});
    	}
     
    	public int getXCenter() {
    		return xCenter;
    	}
     
    	public void setXCenter(int xCenter) {
    		this.xCenter = xCenter;
    	}
     
    	public int getYCenter() {
    		return yCenter;
    	}
     
    	public void setYCenter(int yCenter) {
    		this.yCenter = yCenter;
    	}
     
    	public int getMaxXDistenceToCenter() {
    		return maxXDistenceToCenter;
    	}
     
    	public void setMaxXDistenceToCenter(int maxXDistenceToCenter) {
    		this.maxXDistenceToCenter = maxXDistenceToCenter;
    	}
     
    	public int getMaxYDistenceToCenter() {
    		return maxYDistenceToCenter;
    	}
     
    	public void setMaxYDistenceToCenter(int maxYDistenceToCenter) {
    		this.maxYDistenceToCenter = maxYDistenceToCenter;
    	}
    }
    Après, si tu veux limité ta capture à un ovale, il faudra ajouter une contrainte. Personnellement, je préféré utiliser des images transparente pour faire mes IHM (et donc vérifier la transparance à un point donnée). Mais je pense que tu peux utiliser une sous classe de Shape et utilisé la méthode contains(double x, double y)

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 2
    Points : 4
    Points
    4
    Par défaut
    Merci beaucoup pour votre aide.

  4. #4
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Hésite pas à revenir si tu as des soucis sur l'implémentation.
    Ou fermer le sujet, si ton problème est résolu.

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

Discussions similaires

  1. Problème mathématiques, joystick virtuel.
    Par shirohige dans le forum Développement 2D, 3D et Jeux
    Réponses: 7
    Dernier message: 30/08/2013, 14h59
  2. Clavier ou joystick virtuel, controllé par C#
    Par simonlourson dans le forum Windows
    Réponses: 0
    Dernier message: 01/12/2011, 11h06
  3. port serie virtuel et java urgent
    Par never-land0 dans le forum Développement Mobile en Java
    Réponses: 0
    Dernier message: 05/09/2008, 18h23
  4. [Pocket PC]java machine virtuel sur pocket pc 2003
    Par largowinch dans le forum Mobiles
    Réponses: 2
    Dernier message: 13/10/2005, 16h00
  5. Trouver l'emplacement de la machine virtuelle java
    Par aymron dans le forum Windows
    Réponses: 2
    Dernier message: 30/03/2004, 13h11

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