Désactiver selection jList

Résolu
tototitanium Messages postés 13 Date d'inscription samedi 28 mars 2009 Statut Membre Dernière intervention 8 mai 2010 - 5 mai 2010 à 17:00
tototitanium Messages postés 13 Date d'inscription samedi 28 mars 2009 Statut Membre Dernière intervention 8 mai 2010 - 8 mai 2010 à 21:42
Bonjour,

J'aimerais désactiver la sélection d'un élément d'un jlist mais sans griser la zone. Le problème c'est qu'en utilisant jListTest.setEnabled(false) mes éléments sont grisés.

Y a t'il une astuce ?






D'avance merci !
A voir également:

5 réponses

didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
8 mai 2010 à 19:44
Bonjour,

/**
 * Les imports des classes nécessaires.
 */
import javax.swing.JFrame;

import javax.swing.JList;

import javax.swing.event.ListSelectionListener;
import javax.swing.event.ListSelectionEvent;


/**
 * Une class de test pour la {@code JList}.
 * @author Jean-Baptiste
 */
public class Test extends JFrame {

/**
 * La liste qui nous intéresse.
 */
protected JList myList = null;


/**
 * Le constructeur de la classe.
 */
public Test () {
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(350, 150);
this.setLocationRelativeTo(null);

String[] myItems = {"A", "B", "C", "D", "E", "F"};
myList = new JList();
myList.setListData(myItems);
myList.addListSelectionListener(new ListSelectionListener () {
public void valueChanged (ListSelectionEvent lse) {
//myList.setSelectedIndex(1);
myList.clearSelection();
}
});
this.getContentPane().add(myList);

this.setVisible(true);
}


/**
 * La méthode main.
 * @param arg Les paramètres (aucun dans cet exemple).
 */
public static void main (String arg[]) {
Test t = new Test();
}
}


Je te propose d'utiliser la fonction "clearSelection()" à la place de "setSelectedIndex(-1)". Il n'y a qu'une seule chose que je parviens pas à faire "partir" c'est le cadre bleu qui entoure (cette fois, il ne le surligne plus..) l'item..
3
tototitanium Messages postés 13 Date d'inscription samedi 28 mars 2009 Statut Membre Dernière intervention 8 mai 2010 1
8 mai 2010 à 21:42
Ok merci pour le temps que tu as pris pour m'aider !

J'avais justement tenté le fameux clearselection() mais le cadre bleu était toujours présent...donc j'ai "tatouillé" l'affaire et finalement j'ai résolu l'affaire plus facilement que je l'aurait cru.

Donc un petit setFocusable et hop plus de cadre bleu et donc on a bien comme je le souhaitais au départ, un jList disable sans être grisé:
myList.clearSelection();
myList.setFocusable(false);



Parfait ! Merci tu ma bien aidé sur ce coup ! A bientôt !
1
tototitanium Messages postés 13 Date d'inscription samedi 28 mars 2009 Statut Membre Dernière intervention 8 mai 2010 1
6 mai 2010 à 18:30
N'y aurait-il pas un ActionListener à faire pour désactiver le clique de souris ?

Sinon j'ai vu la fonction cellRenderer mais je n'arrive pas à faire ce que je veux....
0
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
8 mai 2010 à 14:38
Salut,

Tu veux qu'aucun élément ne puisse être sélectionné, à n'importe quel moment ? Ou bien juste quand tu as créé ta JList et que tu l'ajoutes à ta fenêtre ?

Dans le second cas : essais avec myList.setSelectedIndex(-1)
Dans le premier cas : ajoute un ListSelectionListener et quand il se passe quelque chose tu fais myList.setSelectedIndex(-1) pour dé-sélectionner l'élément ..

J'espère avoir répondu à ta question ..
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tototitanium Messages postés 13 Date d'inscription samedi 28 mars 2009 Statut Membre Dernière intervention 8 mai 2010 1
8 mai 2010 à 18:49
Bonjour,

Tu veux qu'aucun élément ne puisse être sélectionné, à n'importe quel moment ?


Oui, c'est exactement ce que je souhaite faire cependant je suis incapable de faire un ListSelectionListener j'ai tenté ceci:

myList.addListSelectionListener(new javax.swing.event.ListSelectionListener()
{
    public void valueChanged(javax.swing.event.ListSelectionEvent e)
    {
        jListTestValueChanged(e);
    }
);


private void jListTestValueChanged(javax.swing.event.ListSelectionEvent evt)
{
    myList.setselectedindex(-1);
}


J'ai également essayé de aidé grâce à la doc mais j'avance dans le brouillard le plus complet....
Thttp://java.sun.com/j2se/1.4.2/docs/api/javax/swing/event/ListSelectionListener.html


Un petit complément de votre aide n'est donc pas de refus !
0
Rejoignez-nous