Как развернуть JFrame в конфигурации с несколькими мониторами - PullRequest
0 голосов
/ 07 октября 2011

Я бы хотел создать приложение с двумя окнами.Первый всегда должен быть на первом мониторе, и его нельзя развернуть.Второй должен быть запущен во втором мониторе (идеальный пример, как в режиме презентации PowerPoint), работает «поверх» окна любого другого приложения и всегда развернут.Это окно запускается с использованием прослушивателя первого окна.Обратите внимание, что эти «мониторы» могут быть ЖК-проекторами, используемыми в презентациях, или мониторами реальных настольных компьютеров.

Я знаю, что существует API GraphicsEnvironment, и мы можем знать, рассматривается ли конфигурация нашего монитора как один монитор, илирассматривается отдельно.Но я не знаю, как это реализовать.Я имею в виду, поскольку конфигурации экрана могут обрабатываться по-разному в зависимости от их графических карт, как мы их проверяем?

Например, если 3 монитора обрабатываются как один монитор с большим разрешением, то, возможно, мы можем установитькоордината x0 для второго окна как: total_width * 2 / 3. Но что, если оно рассматривается как отдельные мониторы ..?

Спасибо.

1 Ответ

2 голосов
/ 27 мая 2012

@ Зекас: Да, это сработало. Извините, что не опубликовал ответ здесь. Я полностью забыл. Таким образом, решение в точности соответствует заявленному ShivanDragon, мы можем получить каждый монитор отдельно, сначала получив нашу GraphicsEnvironment, а затем получить наши экранные устройства из Environment:

GraphicsEnvironment ge = GraphicsEnvironment .getLocalGraphicsEnvironment();
GraphicsDevice[] gs = ge.getScreenDevices();

После этого просто используйте:

gs[_screen_index].setFullSCreenWindow(_frame)
...