Me acabo de dar cuenta que AWT /Swing en Java JDK 1.7 (a partir de JDK 7u15) no es compatible con las pantallas Retina de Apple Macbook Pros. Netbeans, por ejemplo, es casi insoportable para el uso por más de un par de minutos que se ejecuta en una pantalla de la Retina y el uso de JDK 1.7.

Esto ha sido poco abordado en un StackExchange pregunta aquí, y citando un post específico:

De Apple Java JRE 6 apoyará HiDPI, sin embargo, actualmente no es compatible con Oracle Java 7 JRE. Asimismo, no trabajo en el último dev versiones de Java 8. Swing y JavaFX aplicaciones son borrosas en un Retinia MacBook. Esta es la razón por la IntelliJ todavía corre bajo Java 6.

Mi pregunta es más específica de lo que pregunta el OP de la anterior hilo.

Mi empleador de menos de un mes utiliza Swing en todas sus aplicaciones. Por varias razones que están interesados en migrar a Java 7 de Java 6. En los últimos días, otro desarrollador (que es en Windows), se trasladó a nuestra plataforma de Java 7. Como me estoy quedando en la retina Macbook Pro, me di cuenta del problema cuando me sacó la última versión estable de la rama de nuestro código.

Soy nuevo en Java con menos de un año de experiencia en la comunidad, de ahí mi pregunta: ¿la comunidad de Java ser bastante sensible a este problema avanzando, o debe una considerable demora previsto (meses a un año o más) antes de Swing en Java 7 es compatible con las pantallas Retina de Apple?

InformationsquelleAutor kalefranz | 2013-03-03

4 Comentarios

  1. 19

    Java 7u40 Principios de Acceso ahora es compatible con HiDPI (Retina) muestra, como se muestra por este changelog. Así retina soporte ahora está disponible en:

    • Java 6
    • Java 7u40ea o mayor
    • Java 8
    • Gracias, que ordena el Swing (utilizando Java7u40ea). No parece ayudar con JavaFX, aunque puedo agradable cambio brusco de windows y difusa de JavaFX queridos.
    • En realidad, parece que funciona para JavaFX así. Ahora todo es bonito y fuerte. Fantástico!
  2. 7

    el mes pasado yo también estaba interesado en el mismo tema, y después de algún tiempo encontré en la red que nadie puede responder a la pregunta exactamente.

    Hay un error abierto para esto en Oracle:
    http://bugs.sun.com/view_bug.do?bug_id=8000629

    De acuerdo con que debería ser corregido para Java 1.8. Pero lo que tengo miedo es que no estoy seguro de si también se fija para el Swing o sólo para JavaFX. He leído por ahí que ya hay fix para JavaFX (pero no estoy seguro si es oficial), que no resuelve el problema para el Swing.

    Para responder a corto, después de algunos días de búsqueda en internet, lamentablemente no pude encontrar la respuesta …

    Saludos,
    Lubos

    • no hay información, sólo una suposición: el sub-componente de ese error es emitida en su contra es java.awt – si que va a estar, es probable que se arregle en contra de la gráfica de edad.
    • cierto, pero me refería a nadie puede decir con certeza que el fallo va a ser muy fijo. No pude encontrar en internet toda la información a menos que el trabajo ya iniciado – y Java 8 debe ser lanzado en septiembre.
    • Una solución ha sido creada para Java 8 y deben ser implementados oficialmente pronto: mail.openjdk.java.net/pipermail/macosx-port-dev/2013-April/… . No estoy seguro de si hay planes de migración a Java 7.
    • Alguien de Oracle sólo comentó hoy que se ser portado a Java 7: mail.openjdk.java.net/pipermail/macosx-port-dev/2013-April/…
    • Gracias @Thunderforge y SeanReilly por la info. Muy útil.
    • Muchas gracias por la info así.
    • Utilizando la última preview build de JDK8, ahora por fin funciona! Swing hace nítido nítido y las imágenes pueden ser prestados en el doble de tamaño, esto significa que la retina el uso de aplicaciones de Apple JDK 1.6 son compatibles. Usted puede encontrar bajo «de Java, el Acceso Temprano Descargas» jdk8.java.net/download.html

  3. 2

    De acuerdo a un hilo largo que leí hace unos meses (http://lists.apple.com/archives/java-dev/2012/Oct/msg00127.html) la única manera de conseguir la Retina en Swing es instalar el Apple JDK, que a su vez sólo utiliza un «hack» para hacer aplicaciones compatible con pantalla retina. Que el hilo se menciona JavaFX como una solución (que por supuesto no es real solución cuando ya se tiene una pieza compleja de software escrito en Swing).

    Yo mismo traté de escribir un simple JavaFX aplicación con Java 7 después de leer el anterior hilo y se veía más nítida en la Retina; lo mismo con Ensamble (JavaFX demo de la aplicación, disponible en la App Store), que también parecía representar mucho mejor que un Swing normal (como el Panel de Control de Java), pero quizás es sólo el poder de la sugestión.

    Ya estoy ensayando cada nuevo Java 8 de Instantánea de liberación también puedo confirmar que poco a ningún trabajo ha sido realizado para obtener Swing aspecto pasable en las pantallas de retina.

    Nuestra mejor apuesta ahora (sólo una opinión, no tienen ningún conocimiento secreto) es que alguien en Oracle (o un OpenJDK colaborador) va a comprar una retina de mac y solucionarlo en Java 8. No creo que Apple lo va a solucionar mediante el suministro de Java 6 correcciones desde el chico de Apple dijo que ellos sólo volvió de código relacionados con la prestación de vuelta a Cuarzo. Se dio el resultado deseado, pero está fuertemente ligada a la propiedad de OS X de elementos internos que no son de código abierto.

    • Gracias por el enlace. Después de leer el hilo y todos los enlaces o links contenidos en el mismo, no soy nada pero desanime 🙁 parece Que para el cliente integrado de aplicaciones, los desarrolladores de Java que son (1) que actualmente utilizan el Swing y el JRE 6, (2) que quieran migrar más allá de JRE 6, y (3) la atención acerca de la presentación de su aplicación en pantallas hiDPI, no tenemos más remedio que realizar una difícil ruptura con el Swing. Me tomó una mirada en Conjunto (itunes.apple.com/us/app/ensemble/id557744983?mt=12), que es una de JavaFX demo de la aplicación, y estoy de acuerdo en que JavaFX ve mejores. Todavía no Retina crujiente.

Dejar respuesta

Please enter your comment!
Please enter your name here