2016-04-08 6 views
1

У меня проблема с разрешением. Я разработал приложение Java Swing Application (Desktop App), которое прекрасно работает, но проблема возникает, когда я начинаю использовать это приложение с помощью различных систем для ноутбуков или настольных систем, где каждая система имеет собственное разрешение, из-за чего компоненты на JFrame становятся все больше и меньше и Самая большая проблема возникает, когда я начинаю использовать это приложение с системами разрешения 4K, где вы ничего не видите, потому что все на этом JFrame становится слишком маленьким, и вы ничего не сможете прочитать. У нас есть какое-то решение для этого?Проблема с разрешением JFrame

+0

вы используете менеджер компоновки? –

+0

Некоторый код, демонстрирующий проблему, [mcve], поможет нам понять, в чем проблема. Как вы заявляете, мы не можем сказать точно. Например, вы можете устанавливать размеры напрямую, вместо того, чтобы позволить Swing делать это автоматически, например. Но без кода нет никакого способа узнать. – RealSkeptic

+0

Итак, макет GridLayout работает. Таким образом, независимо от того, какое разрешение вы его установите, он будет соответствующим образом упорядочивать компоненты, но не увеличит/уменьшит размер шрифта. Это проблема – Saurabh

ответ

0

Похоже, у вас возникли проблемы с отсутствием поддержки HiDPI в Java на Windows или Linux для Swing/AWT. Это планируется установить в Java 9, и вы можете проверить его с помощью одной из последних альфа-версий.

В настоящее время LookAndFeels просто не поддерживают масштабирование, необходимое для правильной работы в средах HiDPI. Вам необходимо вручную изменить размер/масштаб текста/компонентов/окон до тех пор, пока не будет доступна Java 9, или не переключитесь на JavaFX.

Here's an example о том, как увеличить размер шрифта вручную.

0

Это как все приложения ведут себя. Размер элементов GUI определяется в пикселях, если разрешение дисплея становится больше, оно будет иметь больше пикселей, а размер относительных элементов GUI будет уменьшаться. Вот почему Windows (и, возможно, другие системы) имеет возможность установить масштабирование dpi, иначе все выглядит слишком маленьким.

Есть интересная ошибка: Swing is by default claiming that it is DPI aware, so windows doesn't scale it. There are ways to change that behaviour though. Если Windows имеет масштабирование, то ваше приложение будет выглядеть меньше на экранах с высоким разрешением, чем другие родные приложения. Это особенно печально, поскольку swing на самом деле не поддерживает масштабирование DPI и единственный способ сделать что-то с этим - это вручную изменить размеры шрифтов How to set the DPI of Java Swing apps on Windows/Linux?

Смежные вопросы