3

Java swing を使用する Java デスクトップ アプリケーションがあり、通常のディスプレイで正常に動作します。

しかし、~hiDpi~ ディスプレイ (3200*1800)になると、アプリケーション全体が小さすぎます。

アプリケーション コードは非常に大きく複雑であるため、高 dpi に合わせてコードを再配置することは困難です。この問題の解決策はありますか?

IntelliJのアイデアのようなアプリケーションを見たことがありますが、 Eclipseはこの種のディスプレイで問題なく動作します。どんな助けにも感謝します。

4

2 に答える 2

0

解決策はありませんが、次のとおりです。

要素が JFrame の JPanel にある場合 (標準的な方法)、独自の Layout Manager を作成して、このルート Jpanel を JFrame のサイズの 1/4 にスケーリングし、JFrame のサイズを 4 倍にします (幅 x 2、長さ x 2)。

JFrame の描画メソッドと getGraphics() を使用したいくつかのロジックをオーバーライドし (これを調査する必要があります)、メソッド setScale(2,2) が描画コードに渡される前にグラフィックスで呼び出されるようにします。これにより、すべてが 4 回描画されます。より大きい。

java.awt.EventQueue を使用し、すべてのマウス イベントをプロキシする独自の EventQueue を作成し、それらを window(x/2, y/2) の元の位置の 1/4 になるように変換してから放します。適切な要素のイベント。

全体的なアイデアは、コンポーネントを元のサイズ (実質的に) にとどめ、描画コードとマウス イベントをスケーリングして、低解像度のディスプレイと同じように見え、同じように動作するようにすることです。

于 2015-12-08T07:05:24.007 に答える