2010-08-30 3 views
0

Y at-il un moyen de voir si mon JList list est sélectionné ou non? Je dis cela parce que j'ai un JList et JTextfield et quand je tape "F" dans le JList pour faire une action keyevent .. la lettre F est tapée dans le JTextField après que je me concentre dessus. Par exemple: Disons que je vais à JTextField et que je tape "salut". Je retourne à mon JList et clique sur l'élément sélectionné et appuie sur "F" pour le supprimer de la liste ... eh bien dans JTextField ... Je voudrais aussi taper "F" même si je suis sur JList.Java - Vérifier la sélection sur JList

Obtenez ce que je dis?

+1

Pouvez-vous envoyer votre code? – rob

+0

Malheureusement, je ne peux pas. Mais je suppose que ce n'est pas supposé arriver? Si c'est le cas, je peux concocter un SSCCE plus tard. Je suis un peu pressé en ce moment. – nn2

+0

Un événement KeyEvent généré sur un objet JList ne doit PAS être transmis à un objet JTextField. Un SSCCE devrait être fouetté avant de poster une question. – camickr

Répondre

6

Utilisez la fonction getSelectedIndex() ou isSelectionEmpty() de JList.

1

L'utilisation d'un getSelectedIndex() est la méthode la plus simple.

Disons que vous avez une liste d'objets MyClass que vous voulez mettre dans le JList:

List<MyClass> myClassList = new ArrayList<MyClass>(); 
// myclass.add .... 

JList jList = new JList(myClassList.toArray()); 

Maintenant, pour obtenir l'élément sélectionné:

function MyClass getSelectedElement(){ 
    int index = jList.getSelectedIndex(); 
    if (index < 0){ 
     System.out.println("Nothing selected."); 
     return null; 
    } 
    else{ 
     return myClassList.get(index); 
    } 
}