Bir JSlider veya JSpinner değerinin, grafik arabirim üzerinden setValue(int n)
yöntemiyle ayarlanıp ayarlanmadığını nasıl kontrol edebilirim?Değer setValue (JSlider, JSpinner) ile değil, elle ayarlanıp ayarlanmadığını nasıl kontrol edebilirim?
cevap
SetValue'yi program aracılığıyla çağırdığınızda (çağırmadan önce) true olarak bir boolean değerini true olarak ayarlayın ve olay işleme ile işiniz bittiğinde false olarak sıfırlayın.
Dahili olarak ´setValue´ çağrılır. Kullanıcı, etkinliği yakalamak için ChangeListener uygulayarak kaydırıcının düğmeyi hareket ettirdiğinde olayı yakalamayı deneyebilirsiniz. Ayrıca, topuzu hareket ettirmenin birçok değişiklik olayını tetiklediğini unutmayın. Bu nedenle, kaydırıcının son değeriyle ilgileniyorsanız, false
için değerlendirildiğinde getValueIsAdjusting
'u kullanın. Sorun ChangeListener
Withing ise
Ayarı türetmek, JSlider bileşeni uzanan deneyin ve yeni değeri alır yeni bir yöntem eklemek VE (örneğin, bir int kodu veya bir enum ile) sorunları kim Özel mantığınızı gerçek setValue yöntemine getirdikten sonra değerin. Sizin durumunuzda, eğer yanlıĢ değilse, belirli bir bileşen onu çağırırsa, setValue
numaralı çağrıyı engellemek isteyeceksiniz.
Olayı yakaladım. Sorun, olayın içinde yer alıyor çünkü birbirine bağlı iki nesne var ve bir anothers değerini sonsuz bir döngüde almaları için değiştiriyorlar. Değişim modunu tespit etmem gerekiyor. –
@ AndrewG.H. Cevabımı güncelledim. – Gamb
Grafik arabirimi dahili olarak "setValue" işlevini çağırır, bu nedenle hiçbir şekilde – Archer