Rumah >Java >javaTutorial >Bagaimana untuk Mengambil Lebar dan Ketinggian JPanel dengan Tepat daripada Kelas Luaran?

Bagaimana untuk Mengambil Lebar dan Ketinggian JPanel dengan Tepat daripada Kelas Luaran?

Linda Hamilton
Linda Hamiltonasal
2024-12-12 13:06:10309semak imbas

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

Mendapatkan JPanel Lebar dan Ketinggian daripada Kelas Luaran

Dalam aplikasi anda, anda menghadapi masalah di mana anda perlu mengakses lebar dan tinggi JPanel daripada yang berasingan kelas (Rect). JPanel menyediakan kaedah untuk mendapatkan semula dimensinya, tetapi ia mengembalikan 0 apabila dipanggil di luar kelas.

Meluluskan Instance JPanel ke Kelas Rect

Satu penyelesaian adalah dengan menghantar contoh JPanel sebagai parameter untuk bergerak () kaedah dalam kelas Rect. Ini memberikan akses kepada dimensi 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
    }
}

Melalui Objek Dimensi

Pendekatan lain ialah mendapatkan objek Dimensi JPanel dan menghantarnya kepada kaedah move():

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

    // rest of the movement logic using jpWidth and jpHeight
}

Di dalam kelas GamePanel, anda boleh mengira objek Dimensi dalam paint() kaedah:

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());

        // ...
    }
}

Kemudian, hantar objek dimensi ke kelas Rect:

for(Rect rect:rect){
    rect.move(dimension);
}

Pertimbangan

  • Kaedah pertama lebih mudah jika anda perlukan untuk mengakses lebar dan ketinggian JPanel secara terus.
  • Kaedah kedua adalah lebih fleksibel kerana ia menyediakan akses kepada Dimensi objek, yang boleh digunakan untuk pengiraan atau penyimpanan.
  • Untuk prestasi optimum, elakkan mengira objek Dimensi berulang kali. Gunakan pembolehubah peribadi untuk cache nilai terkini.

Atas ialah kandungan terperinci Bagaimana untuk Mengambil Lebar dan Ketinggian JPanel dengan Tepat daripada Kelas Luaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn