bu test değil, ama temelleri olurdu ...
- Kullanım
JList#locationToIndex(Point)
verilen noktasında öğenin dizinini alır.
- Belirtilen dizinden "öğe" değerini alın (
JList#getModel#getElementAt(int)
kullanarak).
ListCellRenderer
ürününü JList#getCellRenderer
kullanarak edinin.
- elemanı Render ve gerekli hücre sınırları için oluşturucunuz en sınırlarını ayarlayın
Component
temsil
- var olsun
- dönüştürme
Component
s bağlamda oluşturucuda
- Kullanım
getComponentAt
orijinal Point
...
Muhtemelen
, gibi bir şey ...
int index = list.locationToIndex(p);
Object value = list.getModel().getElementAt(int);
Component comp = listCellRenderer.getListCellRendererComponent(list, value, index, true, true);
comp.setBounds(list.getCellBounds(index, index));
Point contextPoint = SwingUtilities.convertPoint(list, p, comp);
Component child = comp.getComponentAt(contextPoint);
, bir [ 'ListSelectionListener'] (http://docs.oracle.com/javase/7/docs/api/javax/swing/event/ListSelectionListener.html) ekleyin. Daha iyi yardım için, bir [SSCCE] (http://sscce.org/) gönderin. –
'JList' herhangi bir bileşeni kaplamıyor. Bileşenin listeye bir "lastik damgası" boyamak için 'ListCellRenderer 'kullanır. Yani, listedeki her öğe aynı/tek 'ListCellRenderer' kullanılarak oluşturulmaktadır. – MadProgrammer