Macで複数のJFrameを使用してプログラムを作成しましたが、解像度は問題なく、すべてが画面に適切に収まりました。しかし、PCでプログラムを実行すると、JFrameが大きすぎて、画面からすぐに消えてしまいます。
私の質問は、すべてのコンポーネントが少し小さく描画されるように、JFrameでユニバーサル解像度を設定することは可能ですか?私はむしろそれを行い、プログラム全体を調べて、すべてのコンポーネントのサイズを手動で変更したいと思います。
Macで複数のJFrameを使用してプログラムを作成しましたが、解像度は問題なく、すべてが画面に適切に収まりました。しかし、PCでプログラムを実行すると、JFrameが大きすぎて、画面からすぐに消えてしまいます。
私の質問は、すべてのコンポーネントが少し小さく描画されるように、JFrameでユニバーサル解像度を設定することは可能ですか?私はむしろそれを行い、プログラム全体を調べて、すべてのコンポーネントのサイズを手動で変更したいと思います。
複数のJFrameを使用してプログラムを作成しました
代わりにCardLayoutを誤って使用します。本当の理由がある場合にのみ、親でJDialogまたはJOptionPaneを使用し、(JDialog)を単一のJFrameにsetModal(true)で使用します。
しかし、PCでプログラムを実行すると、JFrameが大きすぎて、画面からすぐに消えてしまいます。
AbsoluteLayoutを使用していますか
あなたのPCはどういうわけか特定ですか
すべてのネイティブOSは異なる値を返します(たとえば、画面上で同じピクセル比の2つのコンテナーを見つけることができません)JComponentsのフォントとデフォルトのサイズ
すべてのコンポーネントが少し小さく描画されるように、JFrameでユニバーサル解像度を設定することは可能ですか?
適切なLayoutManagerを使用してください、確かに簡単な仕事ではなく、実際の努力が必要です
私はむしろそれを行い、プログラム全体を調べて、すべてのコンポーネントのサイズを手動で変更したいと思います。
適切なLayoutManagerを使用し、
私の知る限り、Swingコンポーネントの解像度を変更することはできません。ただし、システムから現在の画面サイズを取得できます(ここに例があります)。この画面サイズを使用すると、コンポーネントを調整できます。
GUIを賢くコーディングしている場合は、GUIのすべてのコンポーネントのサイズを手動で変更する必要はありません。代わりに、トップレベルのJPanel(またはJFrameなど)は、含まれているコンポーネント(たとえば、pack()など)によってサイズを調整します。したがって、ハードコードされたサイズを持つコンポーネントはごくわずかです。このサイズは、編集しやすいクラスまたはファイルに外部化することもできます。
私はあなたのような問題に遭遇しました、そして私はそれをJScrollbarで解決しました! JFrameをスクロール可能にする方法は次のとおりです。