2010-09-24 20 views

Trả lời

4

Giả sử bạn không muốn che đậy thanh tác vụ, bạn nên sử dụng getMaximumWindowBounds.

Java API

http://www.javabeginner.com/java-swing/java-jframe-class-example

trung JFrame của

Theo mặc định, một JFrame được hiển thị trong góc trên bên trái của màn hình. Để hiển thị khung tại vị trí được chỉ định , bạn có thể sử dụng phương thức setLocation (x, y) trong lớp JFrame . Phương pháp này đặt số góc trên bên trái của một khung tại vị trí (x, y).

mã giả của bạn cho góc trên bên phải trông giống như sau:

yourJFrame.setLocation(
    GraphicsEnvironment.getMaximumWindowBounds().getWidth() - 
    yourJFrame.getWidth(), 0); 
+0

Cảm ơn! Điều này khiến tôi bắt đầu --- câu trả lời của Geoffrey Zheng đã giải quyết vấn đề thứ hai của tôi. –

7

Có nhiều câu hỏi/câu trả lời về việc sử dụng GraphicsEnvironment để thực hiện những việc tương tự.

Bạn có thể sử dụng GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices() để nhận tất cả màn hình, sau đó gọi GraphicsDevice#getConfigurations và sau đó GraphicsConfiguration#getBounds để nhận kích thước và vị trí của từng màn hình, sau đó sử dụng hình học trung học của bạn để tìm màn hình "đúng". (Lưu ý rằng thiết lập đa màn hình thực có thể đặt chúng ở vị trí tùy ý.)

+0

Có đảm bảo rằng thiết bị đầu tiên trong GraphicsEnvironment.getLocalGraphicsEnvironment(). GetScreenDevices() sẽ trả về màn hình đầu tiên nhất? Tôi hỏi vì sử dụng 'hình học trung học' là có thể, nhưng không hiệu quả nếu thực hiện trong nhiều màn hình, nơi màn hình thay đổi từ 1 đến 10. –

+0

Màn hình "đầu tiên nhất" không được xác định bởi vì tôi đã nói bạn có thể định vị nhiều màn hình theo cách bạn muốn, ví dụ 4 màn hình ở 4 đỉnh của một viên kim cương - là một trong những màn hình đầu tiên "đầu tiên nhất" hoặc bên trái? Bạn có thể sử dụng 'GraphicsEnvironment # getDefaultScreenDevice' để có được, bạn biết đấy, * mặc định * màn hình, nhưng bạn có thể đặt bất kỳ màn hình nào là mặc định (ít nhất là trong Windows). –

Các vấn đề liên quan