import java.awt.*; import java.awt.image.*; import java.awt.event.*; import java.util.Arrays; public class EkraaniUuring2 extends Window implements MouseListener{ Image pilt; int ekraanilaius, ekraanikorgus; int punktid[]; PixelGrabber pg; Robot r; int tx, ty, tl, tk; //tüki x, y, laius, kõrgus; public EkraaniUuring2(){ super(new Frame()); try{r=new Robot();}catch(Exception e){} Dimension d=Toolkit.getDefaultToolkit().getScreenSize(); ekraanilaius=d.width; ekraanikorgus=d.height; pildista(); naita(); } public void pildista(){ pilt=r.createScreenCapture(new Rectangle(0, 0, ekraanilaius, ekraanikorgus)); punktid=new int[ekraanilaius*ekraanikorgus]; pg=new PixelGrabber(pilt, 0, 0, ekraanilaius, ekraanikorgus, punktid, 0, ekraanilaius); try{ pg.grabPixels();}catch(Exception e){e.printStackTrace();} } public void naita(){ setLocation(0, 0); setSize(ekraanilaius, ekraanikorgus); show(); repaint(); addMouseListener(this); } public void mousePressed(MouseEvent e){ tx=e.getX(); ty=e.getY(); } public void mouseReleased(MouseEvent e){ tl=e.getX()-tx; tk=e.getY()-ty; removeMouseListener(this); hide(); otsi(); } public void mouseClicked(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void paint(Graphics g){ if(pilt!=null){ g.drawImage(pilt, 0, 0, this); g.setColor(Color.yellow); g.setFont(new Font("Times", Font.PLAIN, 80)); g.drawString("Vali tükk", ekraanilaius/2-50, ekraanikorgus/2); } } public void otsi(){ try{ int tykk[]=new int[tl*tk]; PixelGrabber tg=new PixelGrabber(pilt, tx, ty, tl, tk, tykk, 0, tl); tg.grabPixels(); int vanax=-tl; int vanay=-tk; for(int y=0; ytl || y-vanay>tk)){ //et oleks eelmisest leiust eemal int proovitykk[]=new int[tl*tk]; PixelGrabber ptg=new PixelGrabber(pilt, x, y, tl, tk, proovitykk, 0, tl); ptg.grabPixels(); boolean klapib=Arrays.equals(tykk, proovitykk); if(klapib){ r.mouseMove(x, y); System.out.println(x+" "+y); vanax=x; vanay=y; Toolkit.getDefaultToolkit().beep(); Thread.sleep(500); } } } } System.exit(0); }catch(Exception viga){viga.printStackTrace();} } public static void main(String argumendid[]) throws Exception{ new EkraaniUuring2(); } }