D'après ces articles :
http://news.kynosarges.org/2015/06/29/javafx-dpi-scaling-fixed
https://twitter.com/michaelsamarin/status/729234779292483584
Java 9 devrait prendre en charge les affichages à haute DPI (mise à l'échelle automatique de la DPI) dans Swing. Je l'ai testé sur la dernière version de Accès anticipé à Java 9 + sur Zulu 9 et ça marche et ça a l'air vraiment bien.
Je n'ai pu résoudre qu'une seule chose : le chargement des images haute résolution/rétine.
D'après les articles (liens) ci-dessus et ci-dessous, il devrait utiliser une Convention de nom d'Apple ( @2x ) :
image.png
, image@2x.png
, image@3x.png
etc.
J'ai testé ces méthodes de chargement :
Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource("something/image.png"));
et
ImageIO.read(getClass().getResource("/something/image.png"));
Mais rien de tout cela ne fonctionne (la seule image de base était chargée et floue).
D'après ceci :
La première méthode devrait être prometteuse.
Quelqu'un a-t-il une expérience dans ce domaine (en utilisant Swing ou même JavaFX) ? Je ne sais pas si je fais quelque chose de mal ou si cette fonctionnalité n'est pas encore implémentée dans la préversion actuelle de Java 9.
Mise à jour :
Cela devrait être possible :
J'ai également essayé de suivre les conventions d'appellation (décrites dans le document ici ) :
Windows : image.scale-<dpi-value>.png (image.scale-140.png)
Linux : image.java-scale2x.png
Mac : image@2x.png and image.java-scale2x.png
Cependant, je ne trouve aucune solution fonctionnelle ou information officielle. Je ne comprends pas - les écrans hdpi sont courants aujourd'hui et les applications Java ressemblent à des s... sur ces écrans.