Согласно этим статьям:
http://news.kynosarges.org/2015/06/29/javafx-dpi-scaling-fixed
https://twitter.com/michaelsamarin/status/729234779292483584
Java 9 должна поддерживать высокие индикаторы DPI (автоматическое масштабирование DPI) в Swing. Я тестировал его на последней версии Java 9 Early Access + на Zulu 9, и он работает и выглядит действительно замечательно.
Мне не удалось решить только одно: загрузка изображения с высоким разрешением/сетчатки.
Согласно статьям (ссылкам) выше и ниже, он должен использовать соглашение Apple name (@2x):
image.png
, [email protected]
, [email protected]
и т.д.
Я тестировал эти методы загрузки:
Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource("something/image.png"));
а также
ImageIO.read(getClass().getResource("/something/image.png"));
Но ни одна из этих работ (только базовое изображение было загружено и размыто).
Согласно этому:
Первый метод должен быть перспективным.
У кого-нибудь есть опыт с этим (с использованием Swing или даже JavaFX)? Я не уверен, что я делаю что-то не так, или эта функция не реализована в текущей предварительной версии Java 9 sofar.
Обновить:
Это должно быть возможно:
Я также пробовал следующие соглашения об именах (описанные здесь):
Windows : image.scale-<dpi-value>.png (image.scale-140.png)
Linux : image.java-scale2x.png
Mac : [email protected] and image.java-scale2x.png
Однако я не могу найти какое-либо рабочее решение или официальную информацию. Я не понимаю - hdpi-дисплеи распространены сегодня, а приложения Java выглядят как s... на них.