ホームページ > Java > &#&チュートリアル > フレームの装飾を考慮して、Java フレーム内の四角形を中央に配置する方法

フレームの装飾を考慮して、Java フレーム内の四角形を中央に配置する方法

Barbara Streisand
リリース: 2024-12-15 21:26:14
オリジナル
802 人が閲覧しました

How to Center a Rectangle within a Java Frame, Accounting for Frame Decorations?

Java フレームの中央に長方形を配置する

Java では、フレーム内に長方形を描画しようとするときに、その中央に配置されるようにする必要があります。挑戦的であること。特定の x、y、幅、高さの値を設定したにもかかわらず、長方形がオフセットして表示される場合があります。これに対処するには、フレームの装飾要素を理解することが重要です。

フレームの装飾に関する問題

フレームには通常、境界線やタイトル バーなどの装飾が含まれます。フレームの境界内のスペースを占有します。したがって、コンテンツ領域ではなくフレームに直接ペイントすると、長方形の位置が高すぎるように見える可能性があります。

解決策: フレームのコンテンツ領域にペイントする

長方形を正しく中央に配置するには、基本的に装飾を除いて、フレームのコンテンツ領域にペイントすることに重点を置きます。コンテンツ領域は、コンポーネントの配置に指定された領域であり、位置決めのための一貫した正確な基準点を提供します。

実装例

次のコードは、コンポーネントを正しく配置する方法を示しています。フレームの中央に長方形を配置し、フレームの装飾を調整します:

import javax.swing.*;
import java.awt.*;

public class CenteredRectangle extends JFrame {

    public static void main(String[] args) {
        new CenteredRectangle();
    }

    public CenteredRectangle() {
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        // Set the content pane's preferred size
        setContentPane(new PaintablePanel());
        pack();

        // Center the frame on the screen
        setLocationRelativeTo(null);

        // Make the frame visible
        setVisible(true);
    }

    public class PaintablePanel extends JPanel {

        @Override
        public Dimension getPreferredSize() {
            return new Dimension(800, 400);
        }

        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);

            // Draw the rectangle centered within the content area
            paintRectangle(g);
        }

        private void paintRectangle(Graphics g) {
            g.setColor(Color.RED);
            int x = (getWidth() - 700) / 2;
            int y = (getHeight() - 300) / 2;
            g.drawRect(x, y, 700, 300);
        }
    }
}
ログイン後にコピー

この例では、新しいパネルが作成され、次のように設定されます。フレームのコンテンツ ペイン。パネルは、コンポーネントを描画するための専用領域を提供します。 getPreferredSize() メソッドはパネルに特定の優先サイズがあることを保証し、paintComponent() メソッドは描画動作をカスタマイズするためにオーバーライドされます。次に、paintRectangle() メソッドは、コンテンツ領域の寸法に基づいて適切なオフセットを計算し、その結果、中央に配置された長方形が生成されます。

フレームのコンテンツ領域を利用し、フレームの装飾を調整することにより、このアプローチは、長方形を目的の位置に正確に配置します。場所。

以上がフレームの装飾を考慮して、Java フレーム内の四角形を中央に配置する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート