java - toda - Detecta qué monitor muestra la ventana
redimensionar ventana java (1)
Responda, si la solución de todos los monitores disponibles es la misma.
Para AWT :
Cada control tiene el método getMonitor () desde el que se puede calcular la posición de la pantalla get desde:
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
}
Para SWT :
Es solo un recorte en mi código original. ¡debería preguntar si los valores de retorno no son nulos y algo como esto!
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;
}
Tengo la ventana principal JFrame de la aplicación que puede incluir diferentes componentes. Abro un OnScreenKeyboard auto implementado cuando el usuario selecciona un campo de texto editable. El OSK también es una ventana de JFrame.
Cuando el usuario arrastre la ventana principal a otro monitor, el OSK también se debe mostrar en el mismo monitor. Para esto tengo que detectar el monitor que se muestra el JFrame principal.
Intento encontrar un método en
Toolkit.getDefaultToolkit()
pero no fue capaz de encontrar algo.
¿Sabes cómo puedo detectar el monitor donde se muestra un JFrame?
Java-Version 1.4 Windows XP
Gracias