Deux souris sur un même écran

ginie06 Messages postés 1 Date d'inscription samedi 6 janvier 2007 Statut Membre Dernière intervention 6 janvier 2007 - 6 janv. 2007 à 21:28
cs_jojolemariole Messages postés 519 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 19 décembre 2016 - 24 juil. 2012 à 11:04
Bonjour,

Ce que je voudrais faire est plutôt atypique: il s'agit de faire cohabiter deux souris (souris 1 et souris 2) sur un même écran.
La souris 1 est la souris que tout le monde connait, le périphérique.
La souris 2 est en fait un programme Java qui affiche un curseur.

Et j'ai trouvé grâce à la FAQ GUI que la classe Robot permet notamment de déplacer automatiquement la souris via la méthode mouseMove(int,int). La classe Robot permet également d'actionner les boutons de la souris ou d'entrer des touches au clavier.

Mais le problème est que ces actions vont être associées à la souris 1, et il faudrait qu'elles soient associées à la souris 2.

Que dois-je faire ?
- Faut-il recréer une souris ? Mais là ca risque d'etre compliqué, car je n'ai aucune idée de comment faire en java.
- Existe t-il une autre classe java qui interagit avec l'OS, avec des methodes telles que mouseDoubleClick() par exemple qui ouvre un dossier du bureau à l'invocation de cette méthode sur le dossier correspondant ?
- Y a t-il des methodes complémentaires qui vont de pair avec les methodes de la classe java.awt.Robot et qui permettent d'associer mon programme java (enfin l'affichage de mon curseur) aux actions d'une souris ?
- Avez-vous un complément d'info sur la classe Robot ? (un programme exemple)
- Mon programme est-il faisable ?

Voilà, je vous remercie d'avance pour vos réponses

2 réponses

Annokileur Messages postés 1 Date d'inscription mardi 24 juillet 2012 Statut Membre Dernière intervention 24 juillet 2012
24 juil. 2012 à 09:21
J'ai petaitre une idée :
1) Créer un pheripherique virtual
2) créer une souris ( virtual aussi ) et l'associer au port usb virtual
( pheripherique virtual )
3) une 2 éme souris aparer puis après le codage java
aprend les base puis si tu les connais ba ...
je t'aiderai pas tro mais contacte moi ^^
je pense que sa doit être posible

DESOLER pour les faute de ortho
Cordialement .
0
cs_jojolemariole Messages postés 519 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 19 décembre 2016 25
24 juil. 2012 à 11:04
Salut,

Un truc comme ça devrait marcher,
tu n'as qu'à jouer sur la location de la JWindow avec un Thread.

import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JPanel;
import javax.swing.JWindow;

import com.sun.awt.AWTUtilities;

public class MovingFakeCursor extends JPanel {

private BufferedImage cursor;

public static void main(String[] args) throws IOException {

final JWindow window = new JWindow();
window.setContentPane(new MovingFakeCursor());
window.pack();
window.setLocationRelativeTo(null);

AWTUtilities.setWindowOpaque(window, false);
window.setVisible(true);

}

public MovingFakeCursor() throws IOException {

cursor = ImageIO.read(MovingFakeCursor.class.getClassLoader().getResource("cursor.png"));
setPreferredSize(new Dimension(cursor.getWidth(), cursor.getHeight()));
setOpaque(false);

}

protected void paintComponent(Graphics g) {
g.drawImage(cursor, 0, 0, null);
}

}
0
Rejoignez-nous