Wartet java.awt.Robot.waitForIdle () auf das Absetzen von Ereignissen?

8

Ich verwende java.awt.Robot für Integrationstests meiner Swing-Anwendung, aber ich habe Probleme, meine Aktionen in der richtigen Reihenfolge auszuführen. Wie kann ich dem Thread, der robot.mousePressed(...) aufruft, sagen, dass er blockieren soll, bis Swing das Ereignis beendet hat? Anscheinend ist robot.setAutoWaitForIdle(true) nicht gut.

Hier ist meine Demo. Ich erwarte den "Roboter fertig!" Nachricht immer nach "Aktion beendet zu blockieren.", aber stattdessen passiert es oft stattdessen zu früh.

%Vor%

Ich benutze Java 1.6 auf Ubuntu.

    
yonran 14.06.2012, 23:59
quelle

2 Antworten

5

vielleicht kann dieser Ihnen helfen, beachten Sie nicht in Java7 getestet

Sie können das in jedem der Schritte für isEventDispatchThread ()

testen %Vor%     
mKorbel 15.06.2012, 00:25
quelle
2

mKorbels Antwort ( SunToolkit.realSync() ) ist korrekt, aber realSync ist langsam und wirft SunToolkit.InfiniteLoop . Ich habe diese Variante benutzt, nachdem ich realSync gelernt habe:

%Vor%     
yonran 21.06.2012 16:57
quelle

Tags und Links