16. december 2003 - 21:09Der er
6 kommentarer og 2 løsninger
fravælg på en JList
Hej jeg er ved at lave nogle JLists, der kan vælges noget på, men da der er mange, kan man let komme til at vælge noget i en forkert liste, og så er man jo på herrens mark. indtil videre har jeg lavet en knap, der fjerner markeringer i den pågældende liste, men jeg ville gerne kunne fjerne markeringer i listen ved at klikke på dem igen. Er det mouselistener, og i så fald, hvordan???
OK, sådan kan du checke om der er valgt noget når musen kommer ind over listen
import javax.swing.*; public class MyMouseListener implements java.awt.event.MouseListener { private JList list; int index; boolean isSelected;
public MyMouseListener() { }
public void mouseClicked(java.awt.event.MouseEvent e) {
}
public void mouseEntered(java.awt.event.MouseEvent e) { list = (JList)e.getSource(); isSelected = list.isSelectionEmpty(); index = list.getSelectedIndex(); System.out.println(index + " " + isSelected); // udskriver -1 true hvis der ikke er valgt noget }
public void mouseExited(java.awt.event.MouseEvent e) { }
public void mousePressed(java.awt.event.MouseEvent e) { }
public void mouseReleased(java.awt.event.MouseEvent e) { } }
en simpel løsning... gem om det er første eller anden gang du klikker på den.. (bør nok udvides med at du holder styr på hvilket index det så var, da man ellers skal klikke to gange for at vælge en anden)
public void mouseClicked(MouseEvent e) { if (firstTime) { firstTime = false; } else { ((JList)e.getSource()).clearSelection(); firstTime = true; } }
Hej til jer begge I er kommet med forslag til nogle gode løsninger begge to - jeg må nok indrømme at jeg bare vil nøjes med at bruge ctrl-løsningen, men hvis labanos også lige svarer, er der lige en flok point til deling :o)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.