С каждым участником со своими собственными ароматами , основанными на других ароматах, Я добавляю свои , потому что другие заблокировали вас в отношении расположения окна на выбранном экране.
Это просто лучшее. Позволяет вам также указать местоположение на другом экране.
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);
}
Пример:
setLocation(2, 200, 200);
Даже позволяет передавать в процентах за позицию экрана!
setLocation(2, 0.5, 0); // Place on right edge from the top down if combined with setSize(50%, 100%);
экран должен быть больше 0, что, я уверен, является жестким требованием!
Чтобы поставить на последнюю, просто позвоните с Integer.MAX_VALUE. **