Auto-Hide Task-Bar и максимальное пространство на экране - PullRequest
1 голос
/ 08 сентября 2011

Хорошо задокументировано, что код, подобный следующему

    final Rectangle bounds = device.getDefaultConfiguration().getBounds();
    final Insets screenInsets = Toolkit.getDefaultToolkit().getScreenInsets(
        device.getDefaultConfiguration());

    bounds.x = screenInsets.left;
    bounds.y = screenInsets.top;
    bounds.width -= screenInsets.left + screenInsets.right;
    bounds.height -= screenInsets.top + screenInsets.bottom;

где device - это допустимое значение GraphicsDevice дает прямоугольник, который должен быть максимально допустимым для устройства. Есть и другие способы, которые, похоже, страдают недостатком. Для основного отображения в MS Windows, если панель задач НЕ имеет автоматического скрытия , это работает. Однако, если панель задач автоматически скрывает , она не будет. Я мог бы учесть это в своем модульном тесте, если бы знал, как получить «правильный» размер или как, в худшем случае, определить, когда панель задач автоматически скрывается, а затем пропустить эту часть теста. Поиск в Google и Stackoverflowing не помогли. Я знаю, что кто-то может, и я заранее благодарен вам!

Как всегда ...

1 Ответ

1 голос
/ 08 сентября 2011

если я правильно понял Полноэкранный эксклюзивный режим , то ваше окно закрыто на весь размер экрана, включая необходимую область для панели задач Windows (автоматическое скрытие), я не знаю, как правильно определить WindowsПанель задач # ВЫСОТА, во всех случаях, потому что эти высоты также зависят от Прикладных тем, или нет

1) (очень уродливо) допускает свободное пространство внизу экрана,

2) изменяет Прикладную программуокно к JFrame, затем TaskBar перекрывает нижнюю часть JFrame, но вы должны потерять FullScreenExclusiveMode, это окно, как и любое другое

3), изменить окно аппликации на неотмеченное JDialog, илиJWindow (не оформлено с помощью defalut, но требуется для существования JFrame, конечно, никогда не отображается, просто требуется в качестве родителя) ВНИМАНИЕ: старайтесь избегать использования JDialog # setModal (true) , потому что TaskBar снова не будетдоступно, но в этом случае вы можете / должны поиграть с JDialog # setModalityType , почти симулированным FullScreenExclusiveMode, но с автоматическим скрытием TaskBar может быть доступным и перекрывать нижнюю часть JDialog, но ваше окно не может быть перемещено в BackBack () или iconified ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...