나는 JList
입니다. 목록에서 같은 시간에 ALT + 마우스를 클릭 할 때마다 이미 선택된 값을 삭제하고 싶습니다. 그렇게하는 방법? 나는 사용할 청취자를 모른다.ALT를 누른 상태에서 JList에서 선택한 요소를 삭제합니다.
문제는 내가 값을 선택하고 목록을 다시 클릭하면 이전 선택이 손실되고 새 항목이 선택된다는 것입니다.
은 내가 그랬어 :
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있는 이것은 하나의 문제는 내가 선택한 값이 다시 이전의 선택이 끊어 목록을 클릭하면, 새 항목이 선택되어 있는지입니다
더 나은 도움을 받으려면 [SSCCE] (http://sscce.org) –
을 게시하십시오. 색인과 관련된 문제가있을 수 있습니다. 항목 1, 3 및 5를 선택했다고 상상하십시오. 항목 1 -> 항목 3 및 5를 제거하고 이제 항목 2 및 4가되지만 항목 3을 제거하도록 요청하면 (실제로 원래 항목 4가 제거됩니다) 결국에는 항목 5 (실제로 원래 항목 7)를 제거하도록 요청하십시오. 먼저 모든 개체를 가져 와서 색인 대신 인스턴스별로 제거하거나 색인을 역순으로 정렬하고 색인으로 제거하십시오 –
또한 청취자가 트리거되기 전에 ALT 마우스 클릭으로 선택이 변경되지 않도록하십시오. – Robin