24

Java JDK 1.7 (JDK 7u15 以降) での AWT / Swing は、Apple Macbook Pro の Retina ディスプレイをサポートしていないことに気付きました。たとえば、Netbeans は、Retina ディスプレイ上で JDK 1.7 を使用して実行し、数分以上使用するのはほぼ耐えられません。

これは StackExchange の質問hereでいくらか対処されており、特定の投稿を引用しています。

Apple の Java 6 JRE は HiDPI をサポートしますが、現在 Oracle の Java 7 JRE ではサポートされていません。また、Java 8 の最新の開発ビルドでは動作しません。Retinia MacBook では、Swing および JavaFX アプリがぼやけています。これが、IntelliJ がまだ Java 6 で実行される理由です。

私の質問は、上記のスレッドの OP で尋ねられた内容よりも具体的です。

入社して 1 か月未満の私の雇用主は、すべてのアプリケーションで Swing を使用しています。いくつかの理由から、Java 6 から Java 7 への移行に関心があります。ここ数日のうちに、別の開発者 (Windows を使用している) がプラットフォームを Java 7 に移行しました。私は Retina Macbook Pro を実行していて、気が付きましたコードの最新の安定版ブランチをプルしたときの問題。

私はコミュニティでの経験が 1 年にも満たない Java の初心者です。したがって、私の質問は次のとおりです。Java コミュニティは、この問題の前進にかなりの反応を示しますか、それとも、Swing の前に大幅な遅延 (数か月から 1 年以上) が予想されるかどうかです。 Java 7 は Apple Retina ディスプレイと互換性がありますか?

4

4 に答える 4

19

この changelogに示されているように、Java 7u40 Early Access は HiDPI (Retina) ディスプレイをサポートするようになりました。そのため、Retina サポートは以下で利用できるようになりました。

  • Java 6
  • Java 7u40ea 以上
  • Java 8
于 2013-06-10T17:39:54.753 に答える
7

先月も同じトピックに興味があり、しばらくしてネット上で誰も質問に正確に答えられないことに気づきました。

Oracleには、これに関する未解決のバグがあります:http: //bugs.sun.com/view_bug.do?bug_id=8000629

それによると、Java1.8用に修正する必要があります。しかし、私が恐れているのは、それがSwingでも修正されるのか、JavaFXだけで修正されるのかわからないということです。どこかで、JavaFXの修正がすでに行われていることを読みました(ただし、公式かどうかはわかりません)。これでは、Swingの問題は解決されません。

簡単に言えば、インターネットで数日間検索した後、残念ながら答えが見つかりませんでした...

よろしく、ルボス

于 2013-03-11T12:01:27.430 に答える
2

数か月前に読んだ長いスレッド ( http://lists.apple.com/archives/java-dev/2012/Oct/msg00127.html ) によると、Swing で Retina を取得する唯一の方法は Apple JDK をインストールすることです、これは単に「ハック」を使用してアプリケーションを Retina 対応にするだけです。そのスレッドでは、JavaFX が回避策として言及されています (もちろん、Swing で記述された複雑なソフトウェアが既にある場合、これは実際の回避策ではありません)。

私自身、上記のスレッドを読んだ後、Java 7 で単純な JavaFX アプリケーションを作成しようとしましたが、Retina ではより鮮明に見えました。Ensamble (JavaFX デモ アプリケーション、App Store で入手可能) と同じですが、これも通常の Swing アプリケーション (Java コントロール パネルなど) よりもはるかに優れているように見えましたが、おそらくそれは単なる提案の力です。

私は新しい Java 8 スナップショットのリリースごとに積極的にテストしているので、Retina ディスプレイで Swing の外観をまずまずのものにするための作業がほとんどまたはまったく行われていないことも確認できます。

私たちの現時点での最善の策 (秘密の知識はありません) は、Oracle の誰か (または OpenJDK コントリビューター) が Retina Mac を購入し、Java 8 で修正することです。Apple が修正するとは思いません。 Apple の担当者が、レンダリングに関連するコードを Quartz に戻したと言ったので、Java 6 の修正を提供することによって。それは望ましい結果をもたらしましたが、オープンソース化されていない独自の OS X 内部に大きく結びついています。

于 2013-03-11T21:31:43.257 に答える