Duvida: Como simular um arraste de mouse

3 respostas
java
J

Minha primeira vez aqui, não direito se estou no lugar certo.

O que eu queria era que quando eu clicasse no meu botão, o actionperformed dele chamasse uma função que fizesse um arraste no mouse com a tecla direita. O que tentei fazer foi o seguinte.

try{
        Robot cima = new Robot();
            cima.mouseMove(500, 500);
            cima.mousePress(MouseEvent.BUTTON2);
            cima.delay(5);
            cima.mouseMove(500, 510);
            cima.delay(5);
            cima.mouseRelease(MouseEvent.BUTTON2);
        } catch (AWTException ex) {
        Logger.getLogger(Hack.class.getName()).log(Level.SEVERE, null, ex);
        }

Preciso que eu clicar nesse botão o mouse faça essa operação de ir para essa cordenada, segurar o botão direito e arrastar para a segunda cordenada.
Pessoal, se alguém souber como fazer isso me deem esse help.

3 Respostas

T

Mas não funcionou por quê? Dá alguma exceção? Para em alguma parte? O cursor não se move?

Você pode estar tendo alguma confusão pelo fato de o BUTTON2 ser o botão do meio do mouse, não o direito, que é o BUTTON3 na configuração mais comum.

Dê uma lida em http://stackoverflow.com/questions/4525733/java-mouse-event-right-click e http://stackoverflow.com/questions/8972267/which-mouse-button-is-the-middle-one .

Abraço.

J

Sim, eu mudei para button3 e tentei de novo, mas é como se o mouse não estivesse segurando e fazendo o arraste…
eu queria que ele pegasse o item que está na tela e arrastasse até a pasta e depois soltasse.
o ponteiro pula para a coordenada que eu coloquei, mas o item não vai junto :confused:

G

identar texto pre-formatado em 4 espaços

robot.mousePress(InputEvent.BUTTON1_MASK);
robot.delay(1000); // Click one second
robot.mouseRelease(InputEvent.BUTTON1_MASK);

identar texto pre-formatado em 4 espaços

Criado 30 de janeiro de 2017
Ultima resposta 30 de jan. de 2017
Respostas 3
Participantes 3