我有一个由两个JLabel组成的ListCellRenderer;一个用于文本,另一个用于退出图像(有点十字)。在ListCellRenderer中添加鼠标监听器到JLabel
我想添加一个mouselistener到那个小小的十字架上,当点击时,这个物品从JList中移除。
我有一个由两个JLabel组成的ListCellRenderer;一个用于文本,另一个用于退出图像(有点十字)。在ListCellRenderer中添加鼠标监听器到JLabel
我想添加一个mouselistener到那个小小的十字架上,当点击时,这个物品从JList中移除。
你可以尝试直接添加的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();
}
}
});
现在取决于指数上面,你可以达到你想要做什么。
ehh .. popupTrigger属性如何处理该问题? – kleopatra 2012-03-14 13:31:37
@kleopatra,感谢您指出错误,我真的很感激。 – 2012-03-14 13:35:48
将侦听器添加到呈现组件(它从来不是容器层次结构的一部分,因此从不会看到任何事件)是没有意义的。相反,将侦听器添加到列表中,并检查该事件是否会在图标上方,如果该组件已被添加用于渲染该行 – kleopatra 2012-03-14 13:36:02