Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1549 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [JAVA] SunSPOT - Gestion clavier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JAVA] SunSPOT - Gestion clavier

n°1891266
delyves
Posté le 04-06-2009 à 12:28:21  profilanswer
 

Bonjour,
 
Je suis en projet informatique et je dois commander un jeu (TrackMania pour ceux qui connaissent) avec des SunSPOT (http://www.sunspotworld.com/) fabriqué par Sun et programmé en Java. Mon souci est que le robot fourni par Java gère très bien l'interaction avec Windows et les produits Microsoft en général. Mais dés que l'on passe dans les jeux qui gèrent différemment les événements claviers le robot de Java ne permet plus de commander le clavier. En effet pour Trackmania, l'événement flèche droite du robot Java devient l'événement touche 8 du clavier numérique.
 
Alors question, comment gérer au mieux les événements claviers, comment les commander de manière plus proche du hardware que par le robot Java qui n'interagit qu'avec Windows ? Si vous avez une idée, ça m'intéresse.
 
Code de la gestion du clavier :
 

Citation :

package org.sunspotworld;
 
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.util.logging.Level;
import java.util.logging.Logger;
 
/**
 *
 * @author
 */
public abstract class AKeyboard extends AOutput {
 
    Robot r;
 
    public AKeyboard() {
        try {
            r = new Robot();
        } catch (AWTException ex) {
            Logger.getLogger(AKeyboard.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
 
    protected void setkeyboard(int eve) {
        switch (eve) {
            case LEFTARROW:
                r.keyPress(KeyEvent.VK_LEFT);
                r.keyRelease(KeyEvent.VK_LEFT);
                System.out.println("flèche de gauche" );
                break;
            case DOWNARROW:
                r.keyPress(KeyEvent.VK_DOWN);
                r.keyRelease(KeyEvent.VK_DOWN);
                System.out.println("flèche du bas" );
                break;
            case UPARROW:
                r.keyPress(KeyEvent.VK_UP);
                r.keyRelease(KeyEvent.VK_UP);
                System.out.println("flèche du haut" );
                break;
            case RIGHTARROW:
                r.keyPress(KeyEvent.VK_RIGHT);
                r.keyRelease(KeyEvent.VK_RIGHT);
                System.out.println("flèche de droite" );
                break;
            case ACCARROW:
                //mettre quoi ?
                System.out.println("accelération" );
                break;
            case BRAKEARROW:
                System.out.println("freinage" );
                break;
            case F5:
                r.keyPress(KeyEvent.VK_F5);
                r.keyRelease(KeyEvent.VK_F5);
                System.out.println("F5" );
                break;
            case ESCAPE:
                r.keyPress(KeyEvent.VK_ESCAPE);
                r.keyRelease(KeyEvent.VK_ESCAPE);
                System.out.println("Echap" );
                break;
            case ALTF4:
                r.keyPress(KeyEvent.VK_ALT);
                r.keyPress(KeyEvent.VK_F4);
                r.keyRelease(KeyEvent.VK_F4);
                r.keyRelease(KeyEvent.VK_ALT);
                System.out.println("ALT F4" );
                break;
        }
    }
}


 
 

Citation :

package org.sunspotworld;
 
import java.awt.AWTException;
import java.awt.Robot;
import java.util.logging.Level;
import java.util.logging.Logger;
 
/**
 *
 * @author
 */
public class Keyboard extends AKeyboard {
 
    int typeMsg;
 
    Keyboard() {
        try {
            r = new Robot();
        } catch (AWTException ex) {
            Logger.getLogger(Keyboard.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
 
    public void do_detect() {
          typeMsg = ra.getTypeMsg();
        switch (typeMsg) {
            case Radio.RIGHTARROW:
                this.setkeyboard(RIGHTARROW);
                break;
            case Radio.LEFTARROW:
                this.setkeyboard(LEFTARROW);
                break;
           case Radio.UPARROW:
                this.setkeyboard(UPARROW);
                break;
            case Radio.DOWNARROW:
                this.setkeyboard(DOWNARROW);
                break;
           /* case SunSpotDesktopMouse.SPECIAL:
                if (d.getSpecial() == 1) {
                    this.setkeyboard(F5);
                }
                if (d.getSpecial() == 2) {
                    this.setkeyboard(ESCAPE);
                }
                if (d.getSpecial() == 3) {
                    this.setkeyboard(ALTF4);
                }
                break;*/
        }
    }
}


 
 
Merci de votre aide ;)
 
Cordialement,
 
 
Yves

mood
Publicité
Posté le 04-06-2009 à 12:28:21  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [JAVA] SunSPOT - Gestion clavier

 

Sujets relatifs
[java]Lecture d'un gros fichier texte[c++ vs java] pointeur de fonction
Compiler du code java existant avec MAVENexecuter un fichier .java
[Java] BorderLayout qui ne fonctionne pasExo prog concurrente et collection java
Identification ftp transparente en java[JAVA] Encadrer un groupe d'objet en swing
Developpement d'une application de gestion de logsecriture sur la base de donnée: Ciel gestion commerciale
Plus de sujets relatifs à : [JAVA] SunSPOT - Gestion clavier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR