SwingUtilities.invokeLater
Benim sorum SwingUtilities.invokeLater
ile ilgilidir. Ne zaman bunu kullanmalıyım? GUI bileşenleri güncellemek lazım her zaman kullanmak zorunda mıyım? Tam olarak ne iş yapar? Sezgisel gelmiyor ve görünüşte gereksiz kod ekliyor bu yana alternatif var mı?
CEVAP
GUI bileşenleri güncellemek lazım her zaman kullanmak zorunda mıyım?
Eğer zaten olayı var, bu da çok tıklama ve seçimler gibi kullanıcı tarafından başlatılan olaylara tepki her zaman olduğu gibi iş parçacığı (SUNACAK) gönderme değil. (actionPerformed
vb yöntemleri, her zaman mesai bitiminden tarafından verilir.)
Eğer varsadeğilbu mesai bitiminden ancak ve GUI güncelleştirmeleri bazı ağ ipliği vb bazı zamanlayıcı iş parçacığı veya GUI güncellemek istiyorsanız () yapmak istiyorumzamanlamabu güncelleştirme SUNACAK tarafından gerçekleştirilecek. Bu yöntem için var.
Salıncak temelde parçacığı güvenli değildir. I. e., bu API ile etkileşim tek bir iş parçacığı (SUNACAK) üzerinde yapılması gerekir. Eğer başka bir iş parçacığı GUI güncellemeleri yapmak gerekiyorsa (zamanlayıcı iş parçacığı, iplik ağ, ...) bahsettiğiniz kişi (SwingUtilities.gibi yöntemleri kullanmak gerekir invokeLater, SwingUtilities., ... invokeAndWait).