Erkennen, welcher Monitor zeigt das Fenster
-
19-08-2019 - |
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 findenToolkit.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
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;
}