Với tất cả mọi người sứt mẻ với hương vị riêng của họ, dựa trên hương vị khác, tôi thêm tôi vì những người khác nhốt bạn trong liên quan đến định vị của cửa sổ trên màn hình đã chọn.
Nó chỉ đơn giản là tốt nhất. Nó cũng cho phép bạn thiết lập vị trí trên màn hình kia.
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);
}
Ví dụ:
setLocation(2, 200, 200);
Thậm chí cho phép bạn vượt qua trong một tỷ lệ phần trăm cho vị trí màn hình!
setLocation(2, 0.5, 0); // Place on right edge from the top down if combined with setSize(50%, 100%);
màn hình phải lớn hơn 0, mà tôi chắc chắn là một yêu cầu khó khăn!
Để đặt cuối cùng, chỉ cần gọi với Integer.MAX_VALUE. **
Nhưng tại sao điều này liên quan đến "toàn màn hình"? Nếu tôi không cần sử dụng chế độ toàn màn hình thì sao? – Dims
@Dims, tôi đã đưa ra một câu trả lời mới không ép buộc toàn màn hình. – ryvantage