Frage

ich Haupt JFrame Fenster haben, die verschiedene Komponenten enthalten kann. Ich öffne eine Selbst implementiert OnScreenKeyboard wenn der Benutzer eine editierbare Textfeld auswählen. Die OSK ist auch ein JFrame-Fenster.

Wenn der Benutzer das Hauptfenster auf einem anderen Monitor ziehen, sollte der OSK auch auf demselben Monitor angezeigt. Dazu muss ich den Monitor der Haupt JFrame gezeigt erkennen.

ich versuche, eine Methode in

zu finden
Toolkit.getDefaultToolkit()

, konnte aber nicht some finden.

Wissen Sie, wie ich den Monitor erkennen kann, wo ein JFrame gezeigt wird?

Java-Version 1.4 Windows XP

Danke

War es hilfreich?

Lösung

Antwort, wenn die Lösung aller verfügbaren Monitore sind gleich.

AWT :

Jede Steuerung hat die Methode getMonitor (), aus dem die Bildschirmposition aus wie berechnet bekommen:

Monitor widgetMonitor = mTextWidget.getMonitor();
Rectangle monitorRect = widgetMonitor.getBounds();

if(monitorRect.x < 0){
   // shown in left monitor, starting from the main monitor
}

if(monitorRect.x > monitorRect.width){
   // shown in right monitor, starting from the main monitor
}

SWT :

Es ist nur ein Schnipsel an meinem origial Code. Sie sollten fragen, ob Rückgabewerte nicht null am so etwas wie dies sind!

    int monitorWidth = 0;
    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    GraphicsDevice[] screenDevices = ge.getScreenDevices();
    if(screenDevices.length > 0){
        monitorWidth = screenDevices[0].getDisplayMode().getWidth();
    }


    Point ownerLocationOnScreen = owner.getLocationOnScreen();

    int screenMovingX = 0;
    if(ownerLocationOnScreen.x < 0){
        screenMovingX = -monitorWidth;
    }
    if(ownerLocationOnScreen.x > monitorWidth){
        screenMovingX = monitorWidth;
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top