Java 在ALT+;点击
我有一个Java 在ALT+;点击,java,swing,jlist,key-bindings,listselectionlistener,Java,Swing,Jlist,Key Bindings,Listselectionlistener,我有一个JList。 每当我在列表上同时按ALT+mouseclick时,我希望删除已选择的值。怎么做?我不知道该用哪个听众 问题是,当我选择了值并再次单击列表时,旧的选择丢失,新的项目被选中 我做到了: list.addMouseListener(new MouseListener() { ... @Override public void mousePressed(MouseEvent e) {
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);
}
}
}
....
}
但问题是只删除了一个元素。我在上面单击alt的这一个
问题是,当我选择了值并再次单击列表时,旧的选择丢失,新的项目被选中
Alt+mousePressed用于更改选择。这是Alt键的常见用法。尝试在任何应用程序(如Windows资源管理器)上使用此组合键,看看它是如何工作的
因此,更好的实现可能是使用不同的鼠标+键组合。我不确定这些标准是什么,但我建议,也许可以使用“删除”键删除所选项目。当然,您应该弹出一个确认对话框。对于使用鼠标,我将使用一个弹出菜单,右键单击显示,菜单将包含删除操作。再次显示确认对话框
请记住,无论何时构建应用程序,用户都应该能够使用键盘或鼠标来实现某个操作。要更快获得更好的帮助,请发布一篇文章,说明您可能在索引方面遇到了一些问题。假设您选择了项目1、3和5。您删除了项目1-->项目3和5,现在变成了项目2和4,但您请求删除项目3(实际上会删除原始项目4),最终您请求删除项目5(实际上是原始项目7)。首先考虑获取所有对象,然后通过实例移除它们,而不是按索引或以相反顺序排序这些标记,并通过指示符移除它们,也确保您的ALT鼠标点击不会在监听器被触发之前更改选择……罗宾,这只是我的问题!如何处理它。