Работа с Java-приложением, которое запускает ряд фоновых процессов.
Если есть проблема, то появляется JOptionPane
с некоторой общей информацией.
Рабочая станция имеет более одного монитора, и JOptionPane
может отображаться на любом из них.
В качестве «родителя» для JOptionPane
нет связанных окон.
Есть ли способ указать, на каком мониторе должен отображаться JOptionPane
?Как обеспечить открытие JOptionPane на определенном мониторе?
3
A
ответ
2
Вы можете указать, где будет отображаться диалог, если вы используете JOptionPane
напрямую, создав его. Пример:
JOptionPane pane = new JOptionPane("Hi!");
JDialog dialog = pane.createDialog("Look at me");
dialog.setVisible(true);
В примере, перед вызовом dialog.setVisible()
вы можете расположить диалог, например:
dialog.setBounds(100, 100, 100, 100);
Чтобы показать диалог на экране, что не используемая по умолчанию, вы должны получить (Rectangle
) нужного дисплея, и вы можете поместить свое диалоговое окно в эту область.
Вот как вы можете получить список ваших дисплеев (и их границ). Код взят из Javadoc из GraphicsConfiguration
):
Rectangle virtualBounds = new Rectangle();
GraphicsEnvironment ge = GraphicsEnvironment.
getLocalGraphicsEnvironment();
GraphicsDevice[] gs =
ge.getScreenDevices();
for (int j = 0; j < gs.length; j++) {
GraphicsDevice gd = gs[j];
GraphicsConfiguration[] gc =
gd.getConfigurations();
for (int i=0; i < gc.length; i++) {
virtualBounds =
virtualBounds.union(gc[i].getBounds());
}
}
Смежные вопросы
- 1. JOptionPane появляется на втором мониторе
- 2. JOptionPane открытие другого JFrame
- 3. Открытие новой страницы браузера на втором мониторе
- 4. Как создать CreateWindowEx() для создания окна на определенном мониторе?
- 5. На mac, откройте рамку Emacs на определенном мониторе?
- 6. Запуск приложения для запуска на основном мониторе в определенном месте
- 7. Открытие приложения для Android на определенном фрагменте
- 8. Открытие Div в определенном положении
- 9. Открытие JOptionPane с фокусом после выбора JComboBox
- 10. Как отобразить текст на мониторе?
- 11. Десятичные разряды на мониторе
- 12. window.open на втором мониторе
- 13. крюк на мониторе поворота на
- 14. Как установить newItem на JOptionPane?
- 15. Пакетный файл - открытие файлов в определенном порядке
- 16. Открытие нескольких вкладок в определенном окне браузера?
- 17. Открытие URL-адреса в определенном браузере
- 18. Открытие проводника в определенном файле в Node.js
- 19. Как заставить приложение .net отображать на определенном мониторе в настройках с двумя мониторами?
- 20. Как обеспечить выполнение кода в определенном порядке по наследованию
- 21. Как обеспечить, чтобы потоки Java выполнялись в определенном порядке
- 22. Ловушка мыши на одном мониторе
- 23. Начните видео на втором мониторе?
- 24. окна отображения на дополнительном мониторе
- 25. IMediaControl.Stop висит на втором мониторе
- 26. ViewController ориентация на внешнем мониторе
- 27. SDL2 Как разместить окно на втором мониторе?
- 28. Как показать SplashScreen на втором мониторе?
- 29. Как сделать основную форму на втором мониторе
- 30. Как отобразить форму на дополнительном мониторе?
кажется вроде как еще ошибка (родитель не на 2 дисплее, без родителей) – mKorbel
Если у вас есть 4 мониторов все одного и того же размера, не эту продукцию по существу 4 элемента в массиве с одинаковыми границами или все 4 окна вычисляются как одно большое окно с 4 сегментами и каждый сегмент - подмножество общего размера? –
@ user3601445 Оценки дисплея не основаны на (0; 0), они являются абсолютными и не перекрываются. Например, ваш дисплей по умолчанию должен иметь (x = 0, y = 0), и если у вас есть второй дисплей слева, он должен иметь отрицательный x, как x = -1024. Но почему бы вам просто не попробовать? Запустите код и распечатайте прямоугольники 'virtualBounds'. – icza