Tôi đang viết một ứng dụng được thiết kế để chạy trên một thiết lập màn hình kép, với một "Hiển thị" JFrame đi toàn màn hình trên một màn hình và một "Control" JFrame trên màn hình khác, gửi hướng dẫn đến Hiển thị. Tôi đã thử hai phương pháp riêng biệt để cài đặt Hiển thị toàn màn hình; sự thành công của mỗi dường như phụ thuộc vào hệ điều hành.Java setFullScreenWindow() giữ trên
display.setUndecorated(true);
display.setExtendedState(JFrame.MAXIMIZED_BOTH);
trình trong Windows, nhưng JFrame được ẩn dưới bến tàu/tấm trong OS X và Linux.
phương pháp khác của tôi, sử dụng
GraphicsDevice.setFullScreenWindow(display);
trình trong cả ba hệ điều hành mà tôi đã cố gắng, nhưng trong Windows, tập trung các cửa sổ Control trên màn hình khác làm cho ẩn cửa sổ hiển thị, và kêu gọi
display.setAlwaysOnTop(true);
Không khắc phục được sự cố. Tôi là một phần của phương pháp GraphicsDevice
bởi vì tôi không phải đối phó với các vấn đề trong OS X hoặc Linux, và tôi hy vọng rằng vấn đề Windows là một sửa chữa đơn giản. Là nó?
Cảm ơn bạn đã trả lời, nhưng tôi phải làm gì với các giá trị chiều rộng và chiều cao từ đó cho vòng lặp? Tôi đã thử sử dụng 'setAlwaysOnTop (true);', nhưng điều đó không hiệu quả khi tôi thử nó. Tôi không có quyền truy cập vào Windows trong một giờ nữa, nhưng tôi nhận thấy bạn đã nói "Nếu cửa sổ hiển thị", có lẽ tôi đã gọi nó trước khi đặt cửa sổ hiển thị? Tôi sẽ cố gắng sớm và chấp nhận câu trả lời của bạn nếu nó hoạt động. – BitFiber
Quá muộn để chỉnh sửa nhận xét của tôi ... nhưng 'setAlwaysOnTop (true);' vẫn không hoạt động trong Windows. Tuy nhiên, tôi đã tìm thấy cách giải quyết khác khi sử dụng 'System.getProperty (" os.name ");' để kiểm tra xem hệ điều hành hiện tại có phải là Windows hay không, vì vậy tôi có thể sử dụng phương thức 'setExtendedState'. – BitFiber
Xin lỗi vì nó không hoạt động cho bạn, nhưng cảm ơn thông tin đã làm việc xung quanh .... –