2012-03-14 31 views
0

我有一个由两个JLabel组成的ListCellRenderer;一个用于文本,另一个用于退出图像(有点十字)。在ListCellRenderer中添加鼠标监听器到JLabel

我想添加一个mouselistener到那个小小的十字架上,当点击时,这个物品从JList中移除。

+1

将侦听器添加到呈现组件(它从来不是容器层次结构的一部分,因此从不会看到任何事件)是没有意义的。相反,将侦听器添加到列表中,并检查该事件是否会在图标上方,如果该组件已被添加用于渲染该行 – kleopatra 2012-03-14 13:36:02

回答

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 2012-03-14 13:31:37

+0

@kleopatra,感谢您指出错误,我真的很感激。 – 2012-03-14 13:35:48