oluşturucu hücreler için bileşenleri döndürmek için bir fabrika gibi görünebilir, ama aslında yaklaşımı render sineksiklet izler ve tüm hücreleri işlemek için aynı bileşenini kullanır (getListCellRendererComponent()
her çağrı yeniden gerekiyordu Belirli bir hücre için aynı bileşen örneğini ve hücrenin işlenebilmesi için döndürün).
Bu şekilde, her bir hücre için bileşenleri tanıtmak zorunda kalmadan, JList
(JTable
ve JTree
gibi) büyük miktarda hücreye sahip olabilirsiniz. Bir yan etki olarak, render bileşeni yalnızca render döngüsünde kullanıldığı, ancak bileşen ağacında görünmediği için olaylara yanıt veremez.
Neil Coffey yerine JList
(JTable
, JTree
) için dinleyicileri ekleyin ve etkilenen hangi hücre sevk ve böylece hücre spesifik mantığı ile başa çıkmak için yardımcı yöntemler (locationToIndex(...)
, getCellBounds(...)
) kullanabilir, söz konusu gibi.
Çok güzel bir soru. ItemListeners ile bir ilgisi olabileceğini düşündüm, ama şimdi öyle düşünmüyorum ... Örnek kod bulmayı denedim ama başarılı olmadı. – Uri
Merhaba, aynı problemle karşı karşıyayım, sorunu çözebiliyor musunuz? – user236501