2011-01-16 60 views
5

Tôi đang làm một trò chơi, vì vậy tôi muốn JFrame bắt đầu được tối đa hóa, nhưng tôi cũng không muốn người dùng thay đổi kích thước trò chơi, vì nó sẽ làm hỏng đồ họa. Tôi đang tự hỏi làm thế nào để làm cả hai cùng một lúc?Cả tối đa hóa và ngăn thay đổi kích thước trên JFrame?

Ngay bây giờ, tôi có thể sử dụng JFrame.setExtendedState (JFrame.MAXIMIZED_BOTH) để tối đa hóa, nhưng ngay khi tôi làm JFrame.setResizeable (sai), tôi không thể sử dụng setExtendedState() để tối đa hóa nó nữa.

Tôi nhận ra mình chỉ có thể tối đa hóa, lưu trữ chiều rộng và chiều cao, sau đó sử dụng, nhưng nếu có thể, tôi muốn cửa sổ trông giống như được phóng to. Thanh tiêu đề thay đổi khi nó được phóng to so với khi nó chỉ có kích thước để lấp đầy màn hình, nếu có ai biết tôi đang nói về cái gì.

Trả lời

6

này làm việc cho tôi:

frame.setExtendedState(JFrame.MAXIMIZED_BOTH); 
frame.setVisible(true); 
frame.setResizable(false); 
+1

Cảm ơn, điều đó đã hiệu quả! Trước đây, tôi đã setVisible() dưới setResizeable(), và nó không thành công, mặc dù tôi không biết tại sao họ có thể can thiệp lẫn nhau. –

3

Nếu bạn đang sử dụng JSR296 đây là cách nó hoạt động bên trong lớp Application singleton:

JFrame main = view.getFrame(); 
    main.setExtendedState(JFrame.MAXIMIZED_BOTH); 
    main.pack(); 
    show(view); 
    main.setResizable(false); 

Nếu không có sự hoạt động pack() cửa sổ không được tối đa. Điều này đã được thử nghiệm bằng Linux và Java 6.

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