2010-09-01 13 views
5

Estoy desarrollando una aplicación Java basada en Swing en Eclipse para Windows XP. Tengo una configuración de monitor dual.Pantalla de cambio utilizada para Eclipse Lanzamientos

Quiero que el programa se inicie en un monitor diferente al que estoy ejecutando Eclipse. ¿Cómo puedo configurar mi configuración de depuración para que esto suceda?

+0

¿Qué sistema operativo está utilizando? – Gadolin

+0

Estoy usando WinXP. –

Respuesta

2

Cuando se abre un nuevo marco, su valor predeterminado es coordenadas 0,0. Exactamente donde está esto depende del diseño del monitor de su sistema operativo. Normalmente, 0,0 será la esquina superior izquierda del monitor principal.

La solución a su problema es ejecutar Eclipse en su monitor secundario, para que las aplicaciones se abran en el otro monitor (primario). En realidad, no tiene que mover Eclipse para hacer esto. Acceda a la configuración del monitor de su sistema operativo y cambie el monitor principal al monitor en el que desea iniciar la aplicación. Eclipse ahora se ejecutará en el monitor secundario.

Su nuevo marco se abrirá ahora en el otro monitor, y no ha cambiado ningún código en el proceso, solo los ajustes de configuración de su sistema operativo.

+0

¡Gracias, esto parece hacer el truco! –

0

Creo que no puedes hacer eso. La única solución que encontré es mover el programa de la primera pantalla a la segunda manualmente y luego cerrarlo en esta posición (con el botón de cerrar y no la consola terminar el botón rojo que detiene brutalmente la VM sin guardar nada). Luego, en el siguiente reinicio, el inicio de su programa debería aparecer en la segunda pantalla. Para que esta solución funcione, la configuración de inicio no debe borrar el espacio de trabajo y la configuración en cada inicio para mantener la ubicación de la pantalla del programa.

Consulte RCP opening monitor para ver las cosas relacionadas en la aplicación RCP.

+1

Eso funcionaría para una aplicación RCP, pero no para una aplicación Swing. – zvikico

+0

Oopppsss zvikico tiene razón, mi respuesta está bien para una aplicación de RCP pero no para una de Swing. No recibí la pregunta correctamente, lo siento. –

0

Probablemente pueda lograr ese comportamiento mediante programación. Estoy seguro de que puedes buscar en Google y encontrar ejemplos de cómo abrir tu ventana en el segundo monitor. Si es algo que desea solo en tiempo de depuración, agregue un interruptor en su configuración de inicio (más específicamente, un argumento de tiempo de ejecución de JVM) y verifique el interruptor (System.getProperty) cuando se inicia su programa.

+0

No quiero tener que modificar mi código para hacer esto, probablemente sea posible controlar la ventana predeterminada de los programas dentro del código java, pero esta no es una opción. Me gustaría configurar Eclipse para que haga esto, de modo que pueda reutilizar la configuración en múltiples proyectos. Si hay argumentos de tiempo de ejecución JVM para seleccionar el monitor predeterminado, eso es exactamente lo que estoy buscando. Usted no sabe lo que son, ¿verdad? –

+0

No estoy familiarizado con dicha opción. Depende de la implementación de GraphicsEnvironment/GraphicsConfiguration. Podría escribir un componente reutilizable y usarlo en sus proyectos. No afectará su código de producción. – zvikico

2

Depende un poco de cómo configuró su segundo monitor. En mi respuesta, supongo que lo agregó como una "extensión" a su escritorio (para que pueda mover ventanas entre ellos arrastrando con el mouse).

En este modo, su escritorio se vuelve más grande. Para ver eso, llama al GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds.

El ancho debe ser la suma del ancho de sus dos monitores y la altura debe ser la mayor de las dos alturas.

Tenga en cuenta que la coordenada x puede ser < 0 (esto sucede si su monitor correcto es el predeterminado).

Para mover su ventana al otro monitor, simplemente use una posición (setPosition()) con un valor apropiado y pase esa posición como una opción al programa. O guarde la posición actual como un nodo de preferencias y vuelva a abrir la ventana en el mismo lugar cuando la aplicación se vuelva a ejecutar.

Si sus monitores están configurados de manera independiente, debe consultar la API GraphicsEnvironment.getScreenDevices().

Cuestiones relacionadas