Avatar billede thomaaaz Nybegynder
16. december 2003 - 21:09 Der 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???
Avatar billede _carsten Nybegynder
16. december 2003 - 22:10 #1
Ja - i dit tilfælde er det nok bedst at bruge nedenstående klasse
og tilføje listerne

class MyMouseListener implements java.awt.event.MouseListener {

    public MusListener() {
    }
   
    public void mouseClicked(java.awt.event.MouseEvent e) {
    }
   
    public void mouseEntered(java.awt.event.MouseEvent e) {
        // Check om noget er valgt i JListen når musen kommer ind over
    }
   
    public void mouseExited(java.awt.event.MouseEvent e) {
    }
   
    public void mousePressed(java.awt.event.MouseEvent e) {
       
    }
   
    public void mouseReleased(java.awt.event.MouseEvent e) {
    }   
}
Avatar billede thomaaaz Nybegynder
16. december 2003 - 22:17 #2
Så langt er jeg kommet, men jeg ved ikke hvordan man finder ud af om man trykker på noget, der er valgt.
Avatar billede _carsten Nybegynder
17. december 2003 - 07:51 #3
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) {
    }
}
Avatar billede labanos Nybegynder
17. december 2003 - 09:43 #4
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;
        }
    }
Avatar billede labanos Nybegynder
17. december 2003 - 09:46 #5
en anden ting... hvis du holder ctrl nede når du klikker på noget der er valgt i en liste bliver det fravalgt... men ved ik om det er nok for dig..
Avatar billede thomaaaz Nybegynder
17. december 2003 - 16:32 #6
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)
Avatar billede labanos Nybegynder
18. december 2003 - 08:05 #7
sure :)
Avatar billede thomaaaz Nybegynder
18. december 2003 - 17:39 #8
Takker for hjælpen!
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester