ホームページ >Java >&#&チュートリアル >サイズ変更不可の Java フレーム内で四角形を適切に中央に配置するにはどうすればよいですか?

サイズ変更不可の Java フレーム内で四角形を適切に中央に配置するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-05 04:51:14888ブラウズ

How to Properly Center a Rectangle within a Non-resizable Java Frame?

Java フレームで四角形を中央に配置する方法

問題:

Java では、固定サイズ (800, 400) の長方形のフレームを作成し、次のように設定しました。サイズ変更不可。座標 (50, 50, 700, 300) で描かれた四角形は、フレームの上部に向かって中心からわずかにずれて表示されます。

答え:

問題フレームには、フレーム領域内のスペースを消費する固有の装飾 (境界線とタイトル バー) があるという事実にあります。このケースで想定されているように、フレームの表面に直接ペイントする場合、これらの装飾により、認識されるフレームの中心が移動する可能性があります。

フレームの真の中心に長方形をペイントするには、それをフレームの中心にレンダリングする必要があります。 コンテンツエリア。この領域は装飾を除外し、ペイントに使用できる表面を表します。

デモ:

提供された Java コード例:

  • BadFrame: このフレームは、paint() メソッドをオーバーライドし、四角形を直接描画します。フレームそのもの。これは中心から外れている問題を示しています。
  • PaintablePane: goodFrame のコンテンツ領域として機能するサブコンテナです。 getPreferredSize() メソッドとPaintComponent() メソッドをオーバーライドして、コンテンツ領域のサイズを設定し、四角形を正しく描画します。

goodFrame は、PaintablePane を使用します。コンテンツ ペインとして表示され、すべての描画が指定された領域内で行われるようになります。フレームの装飾はペイント領域の外側とみなされ、長方形は意図したとおり中央に配置されます。

以上がサイズ変更不可の Java フレーム内で四角形を適切に中央に配置するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。