Dapatkan Lebar dan Ketinggian Tetingkap Di Luar Kelas
Apabila bekerja dengan Java Swing, selalunya perlu mengambil semula dimensi tetingkap atas pelbagai sebab , seperti mengubah saiz atau meletakkan semula elemen. Walau bagaimanapun, memanggil kaedah getWidth() atau getHeight() di luar kelas yang ditakrifkan boleh mengembalikan hasil yang tidak tepat, terutamanya apabila tetingkap sedang diubah saiznya.
Untuk menangani isu ini, satu pendekatan adalah dengan lulus JPanel contoh kepada kaedah yang memerlukan dimensi tetingkap. Dengan berbuat demikian, anda boleh terus mengakses kaedah getWidth() dan getHeight() dari dalam kaedah itu.
Sebagai contoh, pertimbangkan kod berikut:
public class MyPanel extends JPanel { private int jpWidth; private int jpHeight; @Override public void paint(Graphics g) { jpWidth = getWidth(); jpHeight = getHeight(); // ... } public void myMethod() { // Now you have access to `jpWidth` and `jpHeight` within this method } }
Dengan menghantar MyPanel ke myMethod(), anda boleh memastikan bahawa ia mempunyai akses kepada dimensi tetingkap yang dikemas kini, walaupun semasa tetingkap itu diubah saiznya.
public class MyOtherClass { public void myMethod(MyPanel panel) { int panelWidth = panel.getWidth(); int panelHeight = panel.getHeight(); // ... } }
Pendekatan ini membolehkan anda mendapatkan dimensi tetingkap yang betul dari luar kelas JPanel, tanpa perlu bergantung pada nilai yang mungkin tidak tepat dari dalam kaedah paint().
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Lebar dan Ketinggian Tetingkap Java Swing Di Luar Kelas dengan Tepat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!