Robot-klasse

Status
Niet open voor verdere reacties.

tranceftw

Gebruiker
Lid geworden
6 apr 2009
Berichten
149
Ik was me vanavond weer eens aan het vervelen en dus ging ik eens op zoek naar iets nieuws in Java. In een van mijn Ebooks vond ik iets over de klasse Robot, dus ik besloot deze eens onder handen te nemen.

Nu ik heb laatste het programmaatje gemaakt: "click as fast as you can" (kan je vinden bij test mijn programma), wat uiteraard een heel simpel programmaatje is, maar nu zou ik graag een ander pogramma(atje) maken om superveel te kunnen klikken in de dertig seconden die je krijgt.

Ik heb al dit:

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.Timer;


public class Test
{
private int counter = 0;
private final Robot rob;
private final Timer timer;

public Test() throws   AWTException, IllegalArgumentException
{
    rob = new Robot();
    timer = new Timer(1000, new ActionListener() {
    public void actionPerformed(ActionEvent e)
    {
        try{
            controleer(); 
        }
        catch(java.awt.AWTException exc)
        {
        }
        }});
    timer.start();
}
public static void main(String[] args) throws   AWTException,
                                                 IllegalArgumentException {                                                 
}

public void controleer() throws AWTException, IllegalArgumentException
{
    if(counter ==20)
    {
        timer.stop();
    }
    else {
        rob.mousePress(InputEvent.BUTTON1_MASK);
        rob.mouseRelease(InputEvent.BUTTON1_MASK);
        counter++;   
    }
}      
}

Voor ik verder ga wil ik weten of ik met die laatste twee statements in de else mijn muis werkelijk laat klikken, want dat kan ik jammergenoeg niet controleren. Ik heb al Thread.sleep(50) ofzo geprobeerd, maar dan krijg ik weer problemen met InteruptedException dus zou ik dat willen vermijden.

Hopelijk kunnen jullie me helpen, ik zoek ondertussen zelf ook nog verder.

Grts
 
Probleem opgelost! Erg domme fout en verspilling van de ruimte op dit forum. :o:o

De fout was dat ik telkens het programma probeerde uit te voeren door te main method uit te voeren. Daar stond natuurlijk niets in en dat had ik niet gezien.

Alles is opgelost. De main method is weg uit die klasse en heb vlug een nieuwe klasse gemaakt met daar de main method in. Alles werkt perfect nu. Mijn avond kan niet meer stuk :p:thumb:

Voor anderen: de klasse Robot is echt wel eens leuk om nader te bekijken en kan later nog van pas komen!

Grts Nicholas
 
Code: (voor geïntresseerden)

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.Timer;

public class TestMain
{

public static void main(String[] args) throws   AWTException, IllegalArgumentException
{     
    Test test = new Test();                                
}
}

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.Timer;


public class Test
{
private int counter = 0;
private final Robot rob;
private final Timer timer;

public Test() throws   AWTException, IllegalArgumentException
{
    rob = new Robot();
    timer = new Timer(1000, new ActionListener() {
    public void actionPerformed(ActionEvent e)
    {
        try{
            controleer(); 
        }
        catch(java.awt.AWTException exc)
        {
            System.out.println("fout!");
        }
        }});
    timer.start();
}


public void controleer() throws AWTException, IllegalArgumentException
{
    if(counter == 20)
    {
        timer.stop();
    }
    else {
//         rob.mousePress(InputEvent.BUTTON1_MASK);
        rob.mousePress(InputEvent.BUTTON1_MASK);
        rob.mouseRelease(InputEvent.BUTTON1_MASK);
        System.out.println("klik!");
        counter++;   
    }
}      
}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan