ホームページ > Java > &#&チュートリアル > 外部クラスから JPanel の幅と高さを正確に取得する方法は?

外部クラスから JPanel の幅と高さを正確に取得する方法は?

Linda Hamilton
リリース: 2024-12-12 13:06:10
オリジナル
305 人が閲覧しました

How to Accurately Retrieve JPanel Width and Height from an External Class?

外部クラスから JPanel の幅と高さを取得する

アプリケーションで、別のクラスから JPanel の幅と高さにアクセスする必要があるという問題が発生しました。クラス (Rect)。 JPanel には次元を取得するメソッドが用意されていますが、クラス外で呼び出される場合は 0 が返されます。

JPanel インスタンスを Rect クラスに渡す

1 つの解決策は、JPanel インスタンスをパラメータとして Move に渡すことです。 Rect クラスの () メソッド。これにより、JPanel のディメンションへのアクセスが提供されます:

public class Rect {
    //... properties

    public void move(JPanel panel) {
        int jpWidth = panel.getWidth();
        int jpHeight = panel.getHeight();

        // rest of the movement logic using jpWidth and jpHeight
    }
}
ログイン後にコピー

ディメンション オブジェクトの受け渡し

別のアプローチは、JPanel のディメンション オブジェクトを取得し、それを move() メソッドに渡すことです:

public void move(Dimension dimension) {
    int jpWidth = dimension.width;
    int jpHeight = dimension.height;

    // rest of the movement logic using jpWidth and jpHeight
}
ログイン後にコピー

GamePanel クラス内では、paint() で Dimension オブジェクトを計算できます。メソッド:

public class GamePanel extends JPanel implements Runnable {
    
    private Dimension dimension;

    // rest of the class

    public void paint(Graphics g) {
        super.paint(g);

        dimension = new Dimension(getWidth(), getHeight());

        // ...
    }
}
ログイン後にコピー

次に、ディメンション オブジェクトを Rect クラスに渡します。

for(Rect rect:rect){
    rect.move(dimension);
}
ログイン後にコピー

考慮事項

  • 必要な場合は、最初のメソッドの方が便利です。 JPanel の幅と高さに直接アクセスします。
  • 2 番目の方法は、ディメンションへのアクセスを提供するため、より柔軟です。
  • 最適なパフォーマンスを得るには、Dimension オブジェクトを繰り返し計算することは避けてください。プライベート変数を使用して最新の値をキャッシュします。

以上が外部クラスから JPanel の幅と高さを正確に取得する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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