2012-03-14 2 views
0

У меня есть ListCellRenderer, который состоит из двух JLabels; один для текста и один для выходного изображения (маленький крест).Добавить прослушиватель мыши в JLabel в ListCellRenderer

Я хочу добавить mouselistener к этому маленькому кресту, при щелчке элемент удаляется из JList.

+1

Не имеет смысла добавлять слушателя в компонент рендеринга (он никогда не является частью иерархии контейнеров, поэтому никогда не увидит какого-либо события). Вместо этого добавьте слушателя в список и проверьте, будет ли событие превышено над значком, если компонент был добавлен для рендеринга этой строки – kleopatra

ответ

0

Вы можете попробовать добавить MouseListener к вашему JList непосредственно следующим образом,

list.addMouseListener(new MouseAdapter(){ 
    public void mouseReleased(final MouseEvent e) { 
     if (e.isPopupTrigger()) {    

      // Get the position of the click 
       final int x = e.getX(); 
       final int y = e.getY(); 

       // Verify that the click occured on the selected cell 
       final int index = list.getSelectedIndex(); 
      } 
    } 
}); 

Теперь в зависимости от индекса выше вы можете добиться того, что вы хотите сделать.

+0

ehh .. что имеет свойство popupTrigger для решения вопроса? – kleopatra

+0

@ kleopatra, спасибо за указание ошибки, я действительно ценю это. –