Rumah >Java >javaTutorial >Mengapa Kaedah paintComponent() JPanel Saya Tidak Dipanggil Selepas repaint()?
Program Tidak Menggunakan kaedah paintComponent() Kelas JPanel Lanjutan
Kod yang disediakan mengandungi sambungan JPanel yang dipanggil DrawPanelRemoteControl, yang mengatasi paintComponent () kaedah untuk pemaparan imej tersuai. Walau bagaimanapun, diperhatikan bahawa walaupun terdapat banyak pelaksanaan imagePanel.repaint(), program ini tidak pernah memasuki kaedah paintComponent().
Punca Kemungkinan:
Isu mungkin tidak berbohong secara langsung dengan kelas DrawPanelRemoteControl atau kaedah paintComponent()nya. Walau bagaimanapun, adalah penting untuk mempertimbangkan proses mengecat semula dan kebergantungannya.
Proses Mengecat Semula:
Apabila memanggil repaint(), program meminta sistem untuk mencetuskan acara mengecat semula untuk komponen pada peluang yang ada seterusnya. Acara ini meletakkan komponen dalam baris gilir mengecat semula. Selepas semua acara lain yang belum selesai diproses, sistem akan memulakan proses mengecat semula.
Pergantungan:
Proses mengecat semula boleh dipengaruhi oleh pelbagai faktor, termasuk:
Disyorkan Penyelesaian:
Untuk memastikan kaedah paintComponent() digunakan, pertimbangkan langkah berikut:
Pelaksanaan Alternatif:
Selain itu, pertimbangkan untuk menggunakan pendekatan yang lebih langsung untuk mengemas kini paparan komponen. Daripada bergantung pada repaint(), anda boleh memanggil kaedah paintImmediately() secara eksplisit pada contoh DrawPanelRemoteControl. Ini memaksa komponen mengecat semula serta-merta, memintas baris gilir mengecat semula.
Atas ialah kandungan terperinci Mengapa Kaedah paintComponent() JPanel Saya Tidak Dipanggil Selepas repaint()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!