Piszę aplikację, która ma być uruchamiana w konfiguracji z dwoma monitorami, z JFrame "Display" przechodzącą w tryb pełnoekranowy na jednym monitorze i JFrame "Control" na innym monitorze, wysyłanie instrukcji do wyświetlacza. Próbowałem dwóch oddzielnych metod ustawiania wyświetlania na pełnym ekranie; sukces każdego wydaje się zależeć od systemu operacyjnego.Zestaw JavaFullScreenWindow() na bieżąco
display.setUndecorated(true);
display.setExtendedState(JFrame.MAXIMIZED_BOTH);
Działa w systemie Windows, ale JFrame zostaje ukryty pod stacją dokującą/panelami w systemie OS X i Linux.
Mój inny sposób, wykorzystując
GraphicsDevice.setFullScreenWindow(display);
działa we wszystkich trzech systemów operacyjnych, które próbowałem, ale w systemie Windows, koncentrując się okno sterowania na drugim monitorze sprawia ekranie okno ukrywanie i nazywając
display.setAlwaysOnTop(true);
Nie rozwiązuje problemu. Jestem trochę stronniczy od metody GraphicsDevice
, ponieważ nie mam do czynienia z problemami w systemie OS X lub Linux i mam nadzieję, że problem z Windowsem jest prostą naprawą. Czy to jest?
Dziękuję za odpowiedź, ale co mam zrobić z wartościami szerokości i wysokości z tej pętli? Próbowałem użyć 'setAlwaysOnTop (true);', ale to nie zadziałało, gdy próbowałem. Nie mam dostępu do systemu Windows przez kolejną godzinę, ale zauważyłem, że powiedziałeś "jeśli okno jest widoczne", więc może nazwałem to przed ustawieniem okna? Spróbuję wkrótce i zaakceptuję twoją odpowiedź, jeśli to zadziała. – BitFiber
Za późno, aby edytować mój komentarz ... ale 'setAlwaysOnTop (true);' nadal nie działa w systemie Windows. Jednak znalazłem obejście w użyciu 'System.getProperty (" os.name ");' sprawdzić, czy obecny system operacyjny to Windows, więc zamiast tego mogę użyć metody 'setExtendedState'. – BitFiber
Przepraszam, bo to nie działało dla ciebie, ale dzięki za informację o pracy nad ... –