Mover Mouse Java

Estou querendo Desenvolver uma Aplicação para ler as cores dos pixels de uma imagem e se achar a cor que eu desejo, mover o mouse até aquela posição e clicar neste pixel. Já consegui implementar isso. Porem estou tendo esse erro na hora de mover o mouse:


Estou capturando a Posição(X,Y) dos pixels verdes
Porem quando eu passo a posição para clicar, os cliques são os vermelhos
DotsSaida
Posição dos Pixels Verdes

private void Action(int mouseX, int mouseY) {
        
                try {
                    Robot macro = new Robot();
                    macro.mouseMove(mouseX, mouseY);
                    macro.delay(200);
                    macro.mousePress(MouseEvent.BUTTON1_MASK);
                    macro.mouseRelease(MouseEvent.BUTTON1_MASK);
                } catch (AWTException ex) {
                    Logger.getLogger(ScreenGrab.class.getName()).log(Level.SEVERE, null, ex);
                }

            }

Método que clica

Galera, Consegui Resolver de uma forma um pouco “brute force” mas deu certo: Segue o Método Action que foi modificado, Simplesmente mandei o mouse mover varias vezes antes de Clicar.

private void Action(int mouseX, int mouseY) {
        
                try {
                    Robot macro = new Robot();
                    macro.mouseMove(mouseX, mouseY);
                    macro.mouseMove(mouseX, mouseY);
                    macro.mouseMove(mouseX, mouseY);
                    macro.mouseMove(mouseX, mouseY);
                    macro.mouseMove(mouseX, mouseY);
                    macro.mouseMove(mouseX, mouseY);
                    macro.mouseMove(mouseX, mouseY);
                    
                    macro.delay(200);
                    macro.mousePress(MouseEvent.BUTTON1_MASK);
                    macro.mouseRelease(MouseEvent.BUTTON1_MASK);
                    System.out.println("Clicou X: "+MouseInfo.getPointerInfo().getLocation().getX()+" Y :"+MouseInfo.getPointerInfo().getLocation().getY());
                } catch (AWTException ex) {
                    Logger.getLogger(ScreenGrab.class.getName()).log(Level.SEVERE, null, ex);
                }

            }