J'écris une classe qui permettra aux utilisateurs sur d'autres ordinateurs de contrôler le contenu d'un JPanel, pour une utilisation dans un système d'affichage partagé. java.awt.Robot me permettra d'effectuer des clics de souris et une saisie au clavier, mais il n'a pas de méthode mouseDragged(MouseEvent evt)
. Mon client a clientMouseReleased
(et Pressed
) méthodes dans le cadre d'un auditeur MouseAdapter
qui ressemble à:Comment java.awt.Robot peut-il être amené à répondre aux événements de glisser de la souris?
private void clientMouseReleased(java.awt.event.MouseEvent evt)
{
try
{
switch (evt.getButton())
{
case 1:
remoteDesktop.mouseRelease(evt.getX(), evt.getY(), InputEvent.BUTTON1_MASK);
break;
case 2:
remoteDesktop.mouseRelease(evt.getX(), evt.getY(), InputEvent.BUTTON2_MASK);
break;
case 3:
remoteDesktop.mouseRelease(evt.getX(), evt.getY(), InputEvent.BUTTON3_MASK);
break;
}
}
catch (Exception e)
{
e.printStackTrace();
JOptionPane.showMessageDialog(this, e.getMessage());
}
}
Lorsque le remoteDesktop
est une classe contenant une java.awt.Robot, et il exécute une Robot.mouseMove
et Robot.mouseRelease
(ou Robot.mousePress
) dans la méthode que le client appelle. Je voudrais pouvoir écrire le mouseDragged
de la même manière, à savoir, comme ceci:
private void clientMouseDragged(java.awt.event.MouseEvent evt)
{
try
{
switch (evt.getButton())
{
case 1:
remoteDesktop.mouseDragged(evt.getX(), evt.getY(), InputEvent.BUTTON1_MASK);
break;
case 2:
remoteDesktop.mouseDragged(evt.getX(), evt.getY(), InputEvent.BUTTON2_MASK);
break;
case 3:
remoteDesktop.mouseDragged(evt.getX(), evt.getY(), InputEvent.BUTTON3_MASK);
break;
}
}
catch (Exception e)
{
e.printStackTrace();
JOptionPane.showMessageDialog(this, e.getMessage());
}
}