2012-02-01 74 views
6

Tôi muốn biết nếu có thể tạo cửa sổ Jframe không có nút tối đa/thu nhỏ tối đa (-) và đóng (x) mặc định! Tôi đã thêm các nút tùy chỉnh trên mỗi khung hình để người dùng không phải lộn xộn xung quanh với các nút mặc định ở góc trên cùng bên phải của cửa sổ!Làm cách nào để ẩn các nút thu nhỏ/phóng to và đóng mặc định trên cửa sổ JFrame trong Java?

+3

Tất nhiên, bây giờ anh ấy sẽ phải gây rối với các nút tùy chỉnh của bạn với các lỗi khả năng sử dụng tinh tế. – millimoose

Trả lời

4

Bạn có thể sử dụng JWindow vì là theo mặc định un_decorated, nhưng bạn có thể setUndecorated() cho JFrame/JDialog

cách khác là

+0

Làm thế nào để bạn làm điều đó với setUndecorated() fro JFrame/JDialog! Bạn có thể đưa ra một ví dụ không ? – Xris

+1

'setDefaultCloseOperations()' sẽ không ẩn các nút, nó chỉ thay đổi hành vi của ứng dụng khi cửa sổ bị đóng. – millimoose

+1

hmmm Tôi đã đăng liên kết tới API, sau đó không bắt buộc phải thêm bất kỳ ví dụ nào – mKorbel

3

Sử dụng JFrame.setDefaultLookAndFeelDecorated. Nó có thể không phải là điều chính xác mà bạn cần nhưng doc nói,

Cung cấp gợi ý là có hay không JFrames mới được tạo nên có trang trí cửa sổ của họ (như biên giới, widget để đóng cửa sổ, tiêu đề. ..) được cung cấp bởi giao diện hiện tại.

Hãy thử mã này:

JFrame frame = new JFrame("Example"); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
frame.setSize(100, 100); 
frame.setUndecorated(true); 
frame.getRootPane().setWindowDecorationStyle(JRootPane.NONE); 
frame.setVisible(true); 

này sẽ loại bỏ toàn bộ thanh tiêu đề. Ngoài ra hãy xem điều này thread.

Nếu không, hãy sử dụng JWindows.

+0

Thanh tiêu đề trên cửa sổ hoàn toàn biến mất do đó tác dụng phụ là người dùng không thể di chuyển cửa sổ bằng cách kéo thanh tiêu đề hoặc thay đổi kích thước cửa sổ. – Tony

0
JFrame.setDefaultCloseOperation(frame.DO_NOTHING_ON_CLOSE); 

Sẽ làm cho nút 'X' không hoạt động. Nó làm việc cho tôi.

+0

Không phải những gì được yêu cầu. – EntangledLoops

+0

Tùy chọn duy nhất hoạt động cho tôi. Tôi có nút và menu đóng của riêng tôi để đóng ứng dụng và trong đó thêm logic sẽ cần phải được kiểm tra trước khi đóng ứng dụng. – Tony

0

Nếu bạn đang sử dụng Netbean thì chỉ cần bỏ chọn tùy chọn có thể thay đổi kích thước trong thuộc tính. Nó sẽ chỉ tắt nút Thu nhỏ/Tối đa hóa.

1

frame.setUndecorated(true); frame.getRootPane().setWindowDecorationStyle(JRootPane.NONE);

+0

Một chút bình luận xung quanh mã sẽ là tốt đẹp, nhưng câu trả lời tốt cho câu hỏi. –

+0

Đặt kiểu trang trí cửa sổ có vẻ không cần thiết. Xem tài liệu: void công cộng setWindowDecorationStyle (int windowDecorationStyle) Đặt loại trang trí cửa sổ (như đường viền, tiện ích để đóng cửa sổ, tiêu đề ...) JRootPane sẽ cung cấp. Mặc định là không cung cấp đồ trang trí cửa sổ (NONE). –

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