2012-04-13 5 views
1

Ist es möglich, ein Ereignis zu erhalten, wenn ein eingebettetes Java-Applet die Position ändert, weil der Browser verschoben wurde?Verschieben von Ereignissen aus dem eingebetteten Java-Applet

Die offensichtliche Methode funktioniert nicht:

applet.addComponentListener(new ComponentListener() {    
    public void componentMoved(ComponentEvent e) { 
     System.out.println("componentMoved"); 
    } 
    // snip 
}); 
+0

Das klingt verdächtig nach der falschen Herangehensweise, um ... etwas zu erreichen. BTW - Was willst du eigentlich erreichen? –

+0

@Andrew Thompson: Ich habe ein Popup-Fenster, das ich gerne mit dem Applet mitbewegen würde. –

+0

Hmm .. Applets & Popup-Fenster sind normalerweise eine schlechte Idee, aber danke für die Erklärung. In diesem Fall sollten Sie das schwebende Fenster beim Verschieben des Browsers ** oder ** Blättern verschieben. –

Antwort

1

Anruf getLocationOnScreen() für jedes feste Element er das Applet in einer Schleife. Beachten Sie, dass auch ausgelöst wird, wenn die Seite mit dem Applet gescrollt wird.

+0

Dies ist wahrscheinlich die beste Lösung. Leider scheint dies auch einige Macken zu haben: Unter (mindestens) Safari und Firefox unter OS X wird getLocationOnScreen() erst aktualisiert, wenn das Applet wieder fokussiert ist. –

+0

Das ist schade. Wenn Sie einen SSCCE Ihres besten Versuchs veröffentlichen, werde ich es mir ansehen. (Ich kann zumindest bestätigen, ob der Code unter Windows/FF funktioniert.) –

+0

Mach dir keine Sorgen. Es funktioniert gut unter Windows, aber da es keine gute allgemeine Lösung gab, werden wir alle Popup-Fenster in Ruhe lassen, wenn der Benutzer das Applet verschieben sollte. –

Verwandte Themen