Метод, предложенный Нейтом, не работает, когда в систему только что добавлен другой монитор, и пользователь перемещает окно Java в этот монитор. С такой ситуацией часто сталкиваются мои пользователи, и для меня единственным способом было перезапустить java.exe, чтобы заставить его пересчитать мониторы.
Основная проблема - myWindow.getGraphicsConfiguration (). GetDevice () всегда возвращает оригинальное устройство, на котором был запущен Java-апплет или приложение. Можно ожидать, что он покажет текущий монитор, но мой собственный опыт (очень трудоемкий и разочаровывающий) заключается в том, что просто полагаться на myWindow.getGraphicsConfiguration (). GetDevice () не является надежным. Если у кого-то есть другой, более надежный подход, сообщите мне.
Выполнение сопоставления для экранов (с использованием вызова allScreen [i] .equals (myScreen)) затем возвращает исходный монитор, на котором был вызван апплет, а не новый монитор, на котором он мог быть перемещен.