1

我有一个JList. 每当我在列表上同时按下 ALT + mouseclick 时,我想删除已选择的值。怎么做?我不知道使用哪个监听器。

问题是当我选择了值并再次单击列表时,旧的选择丢失了,新的项目被选中了。

我做了:

        list.addMouseListener(new MouseListener() {

        ...

            @Override
            public void mousePressed(MouseEvent e) {
                System.out.println(e);
                int[] selected = list.getSelectedIndices();     
                if(selected.length > 0 && (e.getModifiers() & InputEvent.ALT_MASK) == InputEvent.ALT_MASK ){
                    System.out.println("tu ");
                    for(int i: selected){
                        model.remove(i);
                    }
                }

            }
....
}

但问题是只删除了一个元素。我点击的这个

4

1 回答 1

2

问题是当我选择了值并再次单击列表时,旧的选择丢失了,新的项目被选中了。

Alt+mousePressed 用于更改选择。这是 Alt 键的常见用法。尝试在任何应用程序(即 Windows 资源管理器)上使用此组合键,看看它是如何工作的。

所以更好的实现可能是使用不同的鼠标+键组合。我不确定标准是什么,但我建议可能只使用“删除”键删除选定的项目。当然,您应该弹出一个确认对话框。对于使用鼠标,我将使用一个弹出菜单,该菜单将在右键单击时显示,并且该菜单将包含一个删除操作。应再次显示确认对话框。

请记住,任何时候您构建应用程序时,用户都应该能够使用键盘或鼠标来实现操作。

于 2013-06-19T15:27:51.160 回答