Rumah >Java >javaTutorial >Bagaimana untuk Mengambil Lebar dan Ketinggian JPanel dengan Tepat 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.
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 } }
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); }
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!