在ALT +单击时删除JList上的选定元素

时间:2013-06-19 11:14:57

标签: java swing jlist key-bindings listselectionlistener

我有JList。 每当我在列表上同时按ALT +鼠标单击时,我想删除已选择的值。怎么做?我不知道要使用哪个听众。

问题在于,当我选择了值并再次单击列表时,旧选择将丢失,选择新项目。

我做了:

        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);
                    }
                }

            }
....
}

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

1 个答案:

答案 0 :(得分:2)

  

问题在于,当我选择了值并再次单击列表时,旧选择将丢失,选择新项目。

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

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

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