Con todo el mundo astillado con sus propios sabores, sobre la base de otros sabores, que añadir la mía porque los otros se encerraron en lo que respecta a posicionamiento de la ventana en la pantalla seleccionada.
Es simplemente el mejor. Le permite establecer la ubicación en la otra pantalla también.
public void setLocation(int screen, double x, double y) {
GraphicsEnvironment g = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] d = g.getScreenDevices();
if (screen >= d.length) {
screen = d.length - 1;
}
Rectangle bounds = d[screen].getDefaultConfiguration().getBounds();
// Is double?
if (x == Math.floor(x) && !Double.isInfinite(x)) {
x *= bounds.x; // Decimal -> percentage
}
if (y == Math.floor(y) && !Double.isInfinite(y)) {
y *= bounds.y; // Decimal -> percentage
}
x = bounds.x + x;
y = jframe.getY() + y;
if (x > bounds.x) x = bounds.x;
if (y > bounds.y) y = bounds.y;
// If double we do want to floor the value either way
jframe.setLocation((int)x, (int)y);
}
Ejemplo:
setLocation(2, 200, 200);
Incluso le permite pasar de un porcentaje de la posición de la pantalla!
setLocation(2, 0.5, 0); // Place on right edge from the top down if combined with setSize(50%, 100%);
pantalla debe ser mayor que 0, lo que estoy seguro es un requisito difícil.
para colocar en el pasado, sólo tiene que llamar con Integer.MAX_VALUE. **
¿Pero por qué esto se relaciona con "pantalla completa"? ¿Qué pasa si no necesito usar el modo de pantalla completa? – Dims
@Dims, di una nueva respuesta que no obliga a pantalla completa. – ryvantage