2010-09-16 33 views
5

vớiLàm thế nào để tôi có được độ phân giải có thể sử dụng thực

Toolkit.getDefaultToolkit().getScreenSize()

tôi geht kích thước màn hình.

Nhưng thông thường đây không phải là kích thước có sẵn mà tôi có cho chương trình của riêng mình, bởi vì trên mac có một thanh menu trên đỉnh và một thanh biểu tượng ở phía dưới. Windows không có biểu tượng. Vậy làm cách nào để tôi có được không gian có sẵn thực sự?

Trả lời

9

Từ Java forum:

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); 
Rectangle bounds = ge.getMaximumWindowBounds(); 

Bây giờ bạn có giới hạn sans nền tảng phụ thuộc trang trí desktop. Tôi không có một máy Mac xung quanh vì vậy tôi chỉ xác minh rằng nó hoạt động trên WinXP/JDK6.

Lưu ý rằng nếu bạn tự động ẩn thanh tác vụ, các giới hạn KHÔNG bao gồm thanh tác vụ, đó là chính xác.

+0

có cảm ơn bạn, điều này hoạt động perfekt.On Mac OSX, cũng có. –

+3

Tôi đánh giá cao nếu bạn có thể chấp nhận câu trả lời, sau đó. –

+0

@Geoffrey Điều này có tác dụng phụ của việc thay đổi Giao diện của ứng dụng, đúng không? Điều này có cần thiết không? Tôi không hiểu những gì nó có hiệu lực trên 'GraphicsEnvironment' cục bộ. – muffin

1

Tôi không chắc chắn nếu điều này sẽ làm việc, nhưng hãy thử GraphicsConfiguration/GraphicsDevice thay thế. Bạn có thể không có được hộp giới hạn giảm giá cho dock trên OS X vì khu vực của dock vẫn được coi là không gian màn hình. Tôi có thể di chuyển các cửa sổ lên trên nó. Tôi cũng có thể di chuyển các dock để được ở bên cạnh và không phải ở dưới cùng của màn hình (cùng đi cho thanh tác vụ Windows).

http://download.oracle.com/javase/6/docs/api/java/awt/GraphicsDevice.html

+0

Câu trả lời của tôi chỉ là một bước tiến nhỏ từ điều này. –

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