Désactiver selection jList [Résolu]

tototitanium 13 Messages postés samedi 28 mars 2009Date d'inscription 8 mai 2010 Dernière intervention - 5 mai 2010 à 17:00 - Dernière réponse : tototitanium 13 Messages postés samedi 28 mars 2009Date d'inscription 8 mai 2010 Dernière intervention
- 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 !
Afficher la suite 

5 réponses

Répondre au sujet
didoux95 845 Messages postés mardi 25 avril 2006Date d'inscription 1 août 2017 Dernière intervention - 8 mai 2010 à 19:44
+3
Utile
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..
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de didoux95
tototitanium 13 Messages postés samedi 28 mars 2009Date d'inscription 8 mai 2010 Dernière intervention - 8 mai 2010 à 21:42
+1
Utile
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 !
Commenter la réponse de tototitanium
tototitanium 13 Messages postés samedi 28 mars 2009Date d'inscription 8 mai 2010 Dernière intervention - 6 mai 2010 à 18:30
0
Utile
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....
Commenter la réponse de tototitanium
didoux95 845 Messages postés mardi 25 avril 2006Date d'inscription 1 août 2017 Dernière intervention - 8 mai 2010 à 14:38
0
Utile
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 ..
Commenter la réponse de didoux95
tototitanium 13 Messages postés samedi 28 mars 2009Date d'inscription 8 mai 2010 Dernière intervention - 8 mai 2010 à 18:49
0
Utile
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 !
Commenter la réponse de tototitanium

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.