İçinde bir ChangeListener içinden bir JSpinner, hangi düğmeye basıldığını (arttırma/azaltma) basıldığını bilmek mümkün mü?Hangi JSpinner düğmesine basıldı?
cevap
Kısa cevap: Hayır düğmesine basıldığında hangi bilmenin bir yolu yoktur
Uzun cevap : Yeni değer ve önceki değer arasında bir karşılaştırma yaparsanız modeline ve değişim dinleyici bağlı, bu mümkün kullanıcının ileri veya geri gittiğini bilmek.
Olayı tetikleyen nesneyi inceleyebilirsiniz. Belki de, etkinlikten önceki değeri kaydedin ve etkinlik sırasında yukarı veya aşağı gidip gitmediğini belirleyin.
Gerçek değeri bir öncekiyle karşılaştırın.
ChangeEvent ce = ...
((JSpinner)ce.getSource()).getPreviousValue();
Eski değerini saklayarak eski değerine karşı yeni değeri kontrol edebilirsiniz: İşte nasıl
int currentValue = spinner.getValue();
spinner.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent e) {
int value = spinner.getValue();
if(value > currentValue) {
// up was pressed
} else if(value < currentValue) {
// down was pressed
}
currentValue = value;
}
});
evet, anlıyorum, ama yapmak istediğim, JSpinner'ı geçerli değerin adım boyutunu tutması ve artırım/azaltma düğmelerinin adım adım gereği gui'mdeki başka bir alanı değiştirmek için kullanılmasıdır. Dolayısıyla, görüntülenen adım değerini manuel olarak değiştirdiğimde, sonraki ve önceki değerler her zaman aynı kalır. Açıklamamın yeterince açık olup olmadığını bilmiyorum. Çözümünüz için zaten teşekkürler – Heisenbug
@Overbose - bu durumda, belki de diğer değeriniz 'SpinnerModel' dinlemeniz mi istiyorsunuz? Bu iyi bir çözüm olabilir gibi görünüyor. – justkt
JSpinner kompozit bileşenidir, bu içerdiği bileşenlere mouseListeners eklemek mümkündür . Düğmeleri birbirinden ve metin alanından nasıl ayırt edeceğinizi öğrenmek için biraz deneme yapmanız gerekir. Hızlı ve kirli bir yol, koordinatlarını kontrol etmek olurdu.
JSpinner'ın kendisi veya JSpinner.getEditor()
tarafından döndürülen kapsayıcının içerdiği bileşenlerin üzerinde yinelemek istediğinizden emin değilim, bu nedenle her ikisini de deneyin.
- 1. JSpinner Değer değişikliği Olaylar
- 2. JSpinner ölçüsünü kısıtla
- 3. JSpinner: Editör kutusunun uzunluğunu artırma
- 4. JSpinner düzenlenemez olarak nasıl ayarlanır?
- 5. Salınımlarda jspinner için Ayar Zaman Biçimi
- 6. Tut İşte geri düğmesine
- 7. Uzun düğmesine
- 8. Neden bazen VS2010'daki bir programda hata ayıkladım, ctrl'm basıldı?
- 9. Ana sayfa düğmesine Phonegap/iOS düğmesine basıldığında localStorage öğesine erişme
- 10. MainActivity (Geri) düğmesine basarak geri ve geri düğmesine basın.
- 11. Eylem çubuğundaki geri düğmesine basıldığında ana etkinliğe geri dönmek için hangi yöntem çağrılır?
- 12. Giriş düğmesine basarken, düğmeyi seçin
- 13. Son git düğmesine basabilir miyim?
- 14. boyutlandırma Tkinter OptionMenu düğmesine kaçınmak
- 15. QPushButton düğmesine basıldığında QPushButtons'u yenile
- 16. Android, NumericUpDown Düğmesine sahip mi?
- 17. Git düğmesine basarsanız ne olur?
- 18. ViewBag Onclick Düğmesine Ekle MVC
- 19. Ses seviyesini algıla düğmesine basın
- 20. jquery iletişim kutusunda düğmesine tıklayın
- 21. IE'de geri düğmesine basıp basmadım?
- 22. python ile javascript düğmesine tıklayın
- 23. Hangi düğmeye basıldığını nasıl öğrenebilirim?
- 24. Nasıl yapmalıyım? Formu göndermek için "GO" düğmesine tıklayamazsınız, ancak "gönder" düğmesine dokunmanız gerekir?
- 25. Ionic2 düğmesine basıldığında fab menüsünü kapat
- 26. Slayt Düğmesine Özel Alan Bağlantısını Nasıl Uygularım?
- 27. Telefonda geri düğmesine basın Kapat bootstrap modal
- 28. MKMapView'da iOS 6 3D düğmesine sahip misiniz?
- 29. ekleyerek jquery ui simgesi Gönder düğmesine
- 30. JavaScript: CTRL düğmesine basıldığını kontrol edin
Sanırım bu, bir sonraki değeri daha önce seçilen değere değil, geçerli değerden aşağıya döndürecektir. – jzd