Ich habe eine Klasse AdvancedRobot geschrieben, die eine erweiterte Funktion gegenüber ihrer Superklasse hat:
Sie kann den Mauszeiger an eine Stelle auf dem Bildschirm bewegen, an der sich ein bestimmtes Bild befindet.
Zumindest sollte sie das tun; die Zahl der Fundstellen ist immer 0.
Woran könnte das liegen?
Meine Robot-Erweiterung:
	
	
	
	
	
		
	
Testklasse:
	
	
	
	
	
		
	
			
			Sie kann den Mauszeiger an eine Stelle auf dem Bildschirm bewegen, an der sich ein bestimmtes Bild befindet.
Zumindest sollte sie das tun; die Zahl der Fundstellen ist immer 0.
Woran könnte das liegen?
Meine Robot-Erweiterung:
		Code:
	
	import java.awt.AWTException;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.image.BufferedImage;
public class AdvancedRobot extends Robot {
  public AdvancedRobot() throws AWTException {
	super();
  }
  public int mouseMove(BufferedImage image, int width, int height) {
	int x = 0, y = 0, found = 0;
	BufferedImage screen = createScreenCapture(new Rectangle(0, 0, width, height));
	for(int tempX = 0; tempX <= width; tempX++) {
	  for(int tempY = 0; tempY <= width; tempY++) {
		if(image.equals(screen.getSubimage(x, y, image.getWidth(), image.getHeight()))) {
		  x = tempX;
		  y = tempY;
		  found++;
		}
	  }	
	}
	if(found != 0) mouseMove(x, y);
	return found;
  }
}
	Testklasse:
		Code:
	
	import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.imageio.ImageIO;
import javax.swing.*;
public class AdvancedRobotTest extends JFrame {
  private static final long serialVersionUID = 1285145963464958035L;
  public AdvancedRobotTest() {
     try {
       AdvancedRobot rob = new AdvancedRobot();
       int i = rob.mouseMove(ImageIO.read(new File("Test.bmp")),
       getToolkit().getScreenSize().width, getToolkit().getScreenSize().height);
       System.out.println(i);
       System.out.println("Programm beendet.");
       System.exit(0);
    }
    catch(AWTException awte) {}
    catch(IOException ioe) {}
  }
  public static void main(String args[]) {
     new AdvancedRobotTest();
  }
}