Question:
Prise en charge de Java et Mac Retina
Paul Wagland
2012-06-15 00:20:50 UTC
view on stackexchange narkive permalink

Java prend-il en charge l'affichage Retina avec un rendu haute définition de texte, par exemple? Ou est-elle traitée comme une application non modifiée, et donc soumise à une mise à l'échelle?

Six réponses:
Ryan J. McDonough
2013-01-14 09:31:22 UTC
view on stackexchange narkive permalink

Le JRE Java 6 d'Apple prend en charge HiDPI, mais il n'est actuellement pas pris en charge par le JRE Java 7 d'Oracle. Cela ne fonctionne pas non plus sous les dernières versions de développement de Java 8. Les applications Swing et JavaFX sont floues sur un MacBook Retinia. C'est pourquoi IntelliJ fonctionne toujours sous Java 6. Les applications Eclipse nécessiteront le mode PList mentionné par Jurriaan Mous. Les builds jalons d'Eclipse 4.3 ne nécessitent pas de modification.

Jurriaan Mous
2012-06-21 23:43:17 UTC
view on stackexchange narkive permalink

De: https://bugs.eclipse.org/bugs/show_bug.cgi?id=382972

Voici la solution de contournement:

Faites "Afficher le contenu du package" sur Eclipse.app. Modifiez Contents / Info.plist à l'aide de votre éditeur de texte préféré. Justabove

  < / dict>< / plist>  

Placez ceci:

  <key>NSHighResolutionCapable< / key><true / >  

Ensuite, accédez au dossier dans lequel Eclipse est stockée et exécutez

  touchez Eclipse.app  

pour que macOS remarque le changement.

Désormais, la fenêtre d'information n'affichera pas "Ouvrir en basse résolution" comme coché. Lancez Eclipse et profitez de votre nouvelle impressionnante rétine.

C'est un bon conseil, mais qui ne répond pas vraiment à ma question. Je veux vraiment en savoir plus sur les applications Java natives et les applets, pas seulement sur Eclipse… Cela dit, c'est formidable de savoir que je peux faire fonctionner Eclipse!
Xenoveritas
2012-08-05 06:58:06 UTC
view on stackexchange narkive permalink

Je viens de tester cela sur mon MacBook Pro avec rétine, donc la réponse est oui et non - au moins sous Mountain Lion.

Si vous utilisez Java directement depuis la ligne de commande, la réponse est oui: il se lancera dans HiDPI et rendra le texte en haute résolution. Les objets rendus à l'aide de Graphics2D seront rendus en mode haute résolution. (Donc, si vous effectuez le rendu d'une ligne de 0,5 pixels AWT d'épaisseur et que vous la placez à 0,25 / 0,75 par rapport à un pixel AWT, elle rendra un seul "pixel rétinien" d'épaisseur.) De même, le rendu d'une image à demi-résolution la rendra à "rétinal" "résolution.

Donc, au lieu de simplement g.drawImage (image, x, y, observateur) , vous devez faire:

  g.drawImage (image, x, y, image.getWidth (observateur) / 2, image.getHeight (observateur) / 2, observateur);  

(Sauf si vous avez une largeur impaire / hauteur, auquel cas vous devriez probablement utiliser Graphics2D et juste scale (0.5, 0.5) pour rendre une image rétinienne.)

Si vous utilisez JavaApplicationStub, alors vous avez besoin de la réponse fournie par Matt Solnit, sinon il se lancera en mode "redimensionné". (Sous Mountain Lion, il y a des obstacles supplémentaires à franchir liés à Gatekeeper, mais c'est une question différente.)

Notez que cette réponse s'applique à la fois à Mountain Lion et à la version de Java fournie par Apple ( Java 1.6.0_33). Cela peut être différent sous Java 7 d'Oracle pour Mac OS X, et cela peut ne pas fonctionner de la même manière sous Lion.

Cela fonctionne aussi pour moi. J'ai écrit une application qui crée une icône de la barre d'état système. Selon SystemTray.getSystemTray (). GetTrayIconSize (), la dimension est de 22 x 22 (comme dans un MacBook sans écran Retina). Cependant, si j'ajoute une image de 64 x 64 pixels, elle dessine très bien.
Sur un rMBP 15 ", mon expérience est que pour la plupart, les applications / applets Java" fonctionnent "avec la rétine SI vous utilisez la JVM d'Apple (1.6). En utilisant le Java 1.7 d'Oracle, tout est flou.
Cajunluke
2012-06-15 01:43:08 UTC
view on stackexchange narkive permalink

Il est probablement traité comme non modifié, étant donné le nombre de questions sur l'apparence d'Eclipse et comment l'améliorer. (Eclipse fonctionne sur Java.)

Notez qu'Eclipse est basé sur SWT, pas sur Swing, donc bien que basé sur Java, les graphiques ne le sont certainement pas.
Ken
2012-06-18 04:53:13 UTC
view on stackexchange narkive permalink

Au magasin, j'ai écrit un HelloWorld dans Swing, et le texte avait l'air correctement Retina-net. (Je n'ai pas essayé SWT, qui nécessite plus de téléchargement pour la configuration.)

iracigt
2012-06-18 09:02:42 UTC
view on stackexchange narkive permalink

Je n'ai pas de MBP Retina, mais la VM effectue le rendu en utilisant aqua pour autant que je sache, et devrait donc afficher des boutons, des curseurs, du texte et tout autre contrôle Swing avec la qualité de la rétine.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...