我有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);
}
}
}
....
}
但问题是只删除了一个元素。这一个我点击
答案 0 :(得分:2)
问题在于,当我选择了值并再次单击列表时,旧选择将丢失,选择新项目。
Alt + mousePressed用于更改选择。这是Alt键的常见用法。尝试在任何应用程序(即Windows资源管理器)上使用此组合键来查看其工作原理。
因此,更好的实现可能是使用不同的鼠标+组合键。我不确定标准是什么,但我建议可能只使用“删除”键删除所选项目。当然你应该弹出一个确认对话框。为了使用鼠标,我将使用一个右键单击显示的弹出菜单,菜单将包含一个删除操作。再次显示确认对话框。
请记住,无论何时构建应用程序,用户都应该能够使用键盘或鼠标来实现操作。