Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2642 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  comment recuperer un texte écrit dans un JComboBox

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

comment recuperer un texte écrit dans un JComboBox

n°685760
sironimo
daboulkanietch
Posté le 28-03-2004 à 00:08:59  profilanswer
 

Bonjour,
voila comme l'explique clairement le titre, je voudrais savoir comment on recupere un texte, saisie au clavier, d'un JComboBox (éditable) car il n'existe pas de methode getText() (comme pour JTextField par exemple).
Merci d'avance.

mood
Publicité
Posté le 28-03-2004 à 00:08:59  profilanswer
 

n°685766
nraynaud
lol
Posté le 28-03-2004 à 00:27:12  profilanswer
 

http://java.sun.com/docs/books/tut [...] l#editable
 
tu utilises un actionlistener sur le combobox si tu veux récupérer le texte au moment de la validation (avec getSelectedItem()).
 
Pour des besoins plus spécifiques, il faut jouer avec le ComboBoxEditor, mais c'est pour les ceintures noires du swing.


---------------
trainoo.com, c'est fini
n°685772
sironimo
daboulkanietch
Posté le 28-03-2004 à 00:36:20  profilanswer
 

non ca c pour recuperer un item du combo box, je veux juste recuperer ce qui est saisi au clavier ( par exemple quand on recupere ce qui est saisi dans un JTextField on fait un getText() mais ici je ne veux pas recuperer un item du combo box, mais recuperer ce que j'ai saisi dans le combo box à savoir le combo box est editable, i.e on peut ecrire dedans)

n°685774
nraynaud
lol
Posté le 28-03-2004 à 00:49:41  profilanswer
 

Tu as testé ? La doc dit que ça lance l'événement lors de l'appui sur [entrée].
 
http://java.sun.com/j2se/1.4.2/doc [...] ctedItem()

Citation :

If the combo box is editable, then this value may not have been added to the combo box with addItem, insertItemAt or the data constructors.


 
dans le tutorial :

Citation :

An editable combo box fires an action event when the user chooses an item from the menu and when the user types Enter. Note that the menu remains unchanged when the user enters a value into the combo box. If you want, you can easily write an action listener that adds a new item to the combo box's menu each time the user types in a unique value.


 
J'ai la flemme de tester, mais je sens bien que ça marche comme ça quand même.


---------------
trainoo.com, c'est fini
n°685787
sironimo
daboulkanietch
Posté le 28-03-2004 à 01:08:58  profilanswer
 

Merci, c'est à peut près ce que je recherche.
mais est-ce que c'est possible de recuperer la valeur pendant la saisie au clavier (sans taper sur entrer)

n°685790
nraynaud
lol
Posté le 28-03-2004 à 01:11:37  profilanswer
 

sironimo a écrit :

Merci, c'est à peut près ce que je recherche.
mais est-ce que c'est possible de recuperer la valeur pendant la saisie au clavier (sans taper sur entrer)

peut-être, essaye avec (String)cbb.getEditor().getItem()  
 
et vient me filer la réponse STP.


---------------
trainoo.com, c'est fini
n°685800
sironimo
daboulkanietch
Posté le 28-03-2004 à 01:23:33  profilanswer
 

je suis quand meme obligé de cliquer autre part pour recuperer la valeur.
tu sais sous internet explorer, quand tu commence a entrer une adresse, t'a la liste deroulante qui s'affiche par rapport à ce que t'a commencer a ecrire (quand tu tape www.g ben il t'affiche tous les sites où t'a ete qui a pour adresse qui commence par www.g) et au fur a mesure que tu rentre des lettres la liste diminue.
c'est à peut près ce que je cherche à faire (pendant la saisie et non après).

n°685802
veryfree
Posté le 28-03-2004 à 01:33:05  profilanswer
 

sironimo a écrit :

je suis quand meme obligé de cliquer autre part pour recuperer la valeur.
tu sais sous internet explorer, quand tu commence a entrer une adresse, t'a la liste deroulante qui s'affiche par rapport à ce que t'a commencer a ecrire (quand tu tape www.g ben il t'affiche tous les sites où t'a ete qui a pour adresse qui commence par www.g) et au fur a mesure que tu rentre des lettres la liste diminue.
c'est à peut près ce que je cherche à faire (pendant la saisie et non après).
 


 
keyListener?

n°685814
sironimo
daboulkanietch
Posté le 28-03-2004 à 01:54:44  profilanswer
 

ca marche pas avec un combobox

n°685819
veryfree
Posté le 28-03-2004 à 03:02:51  profilanswer
 

sironimo a écrit :

ca marche pas avec un combobox


 

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JComboBox


 
java/awt/Component.html#addKeyListener(java.awt.event.KeyListener)
 
 [:negueu]


Message édité par veryfree le 28-03-2004 à 03:03:00
mood
Publicité
Posté le 28-03-2004 à 03:02:51  profilanswer
 

n°685820
sironimo
daboulkanietch
Posté le 28-03-2004 à 03:09:36  profilanswer
 

tu peux faire combo.addKeyListener...
mais tu ne peux pas recuperer au fur et a mesure ce qui est saisie contrairement à un jtextfield par exemple

n°685823
nraynaud
lol
Posté le 28-03-2004 à 03:28:05  profilanswer
 

oué, voici le pb :
les Combobox ne savent pas qu'ils touchent à des String (ils pourraient par exemple manipuler des schémas techniques avec la même infrastructure, en utilisant un Renderer et un Editor kivonbien), ils sont cablés sur un ComboBoxEditor qui lui sait ce qu'il manipule. Il faut donc que tu passes pas un ComboboxEditor custom.
 
mon conseil : va voir me code source de BasicComboBoxEditor, qui est assez court, et pompe l'idée en y ajoutant ta ListOfValues (c'est le nom courant du truc que tu veux ajouter).
 
 
edit : typo


Message édité par nraynaud le 28-03-2004 à 03:29:42

---------------
trainoo.com, c'est fini
n°685936
sironimo
daboulkanietch
Posté le 28-03-2004 à 15:10:58  profilanswer
 

et si ca ne te derange pas, ou je peux trouver ton code source?

n°686142
nraynaud
lol
Posté le 28-03-2004 à 21:19:53  profilanswer
 

sironimo a écrit :

et si ca ne te derange pas, ou je peux trouver ton code source?

heu je dois t'avouer que je l'ai eu là : https://connect.apple.com/
 
mais ça doit être sur le site de sun pour les autres palteformes.
 
je vais faire un truc illégal pour pas que tu te fasses chier :

Code :
  1. /*
  2. * @(#)BasicComboBoxEditor.java 1.25 03/01/23
  3. *
  4. * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
  5. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
  6. */
  7. package javax.swing.plaf.basic;
  8. import javax.swing.*;
  9. import javax.swing.border.Border;
  10. import javax.swing.text.AttributeSet;
  11. import javax.swing.text.BadLocationException;
  12. import javax.swing.text.PlainDocument;
  13. import java.awt.*;
  14. import java.awt.event.*;
  15. import java.lang.reflect.Method;
  16. /**
  17. * The default editor for editable combo boxes. The editor is implemented as a JTextField.
  18. *
  19. * @version 1.25 01/23/03
  20. * @author Arnaud Weber
  21. * @author Mark Davidson
  22. */
  23. public class BasicComboBoxEditor implements ComboBoxEditor,FocusListener {
  24.     protected JTextField editor;
  25.     private Object oldValue;
  26.     public BasicComboBoxEditor() {
  27.         editor = new BorderlessTextField("",9);
  28.         editor.setBorder(null);
  29.     }
  30.     public Component getEditorComponent() {
  31.         return editor;
  32.     }
  33.     /**  
  34.      * Sets the item that should be edited.  
  35.      *
  36.      * @param anObject the displayed value of the editor
  37.      */
  38.     public void setItem(Object anObject) {
  39.         if ( anObject != null )  {
  40.             editor.setText(anObject.toString());
  41.            
  42.             oldValue = anObject;
  43.         } else {
  44.             editor.setText("" );
  45.         }
  46.     }
  47.     public Object getItem() {
  48.         Object newValue = editor.getText();
  49.        
  50.         if (oldValue != null && !(oldValue instanceof String))  {
  51.             // The original value is not a string. Should return the value in it's
  52.             // original type.
  53.             if (newValue.equals(oldValue.toString()))  {
  54.                 return oldValue;
  55.             } else {
  56.                 // Must take the value from the editor and get the value and cast it to the new type.
  57.                 Class cls = oldValue.getClass();
  58.                 try {
  59.                     Method method = cls.getMethod("valueOf", new Class[]{String.class});
  60.                     newValue = method.invoke(oldValue, new Object[] { editor.getText()});
  61.                 } catch (Exception ex) {
  62.                     // Fail silently and return the newValue (a String object)
  63.                 }
  64.             }
  65.         }
  66.         return newValue;
  67.     }
  68.     public void selectAll() {
  69.         editor.selectAll();
  70.         editor.requestFocus();
  71.     }
  72.     // This used to do something but now it doesn't.  It couldn't be
  73.     // removed because it would be an API change to do so.
  74.     public void focusGained(FocusEvent e) {}
  75.    
  76.     // This used to do something but now it doesn't.  It couldn't be
  77.     // removed because it would be an API change to do so.
  78.     public void focusLost(FocusEvent e) {}
  79.     public void addActionListener(ActionListener l) {
  80.         editor.addActionListener(l);
  81.     }
  82.     public void removeActionListener(ActionListener l) {
  83.         editor.removeActionListener(l);
  84.     }
  85.     static class BorderlessTextField extends JTextField {
  86.         public BorderlessTextField(String value,int n) {
  87.             super(value,n);
  88.         }
  89.         // workaround for 4530952
  90.         public void setText(String s) {
  91.             if (getText().equals(s)) {
  92.                 return;
  93.             }
  94.             super.setText(s);
  95.         }
  96.         public void setBorder(Border b) {}
  97.     }
  98.    
  99.     /**
  100.      * A subclass of BasicComboBoxEditor that implements UIResource.
  101.      * BasicComboBoxEditor doesn't implement UIResource
  102.      * directly so that applications can safely override the
  103.      * cellRenderer property with BasicListCellRenderer subclasses.
  104.      * <p>
  105.      * <strong>Warning:</strong>
  106.      * Serialized objects of this class will not be compatible with
  107.      * future Swing releases. The current serialization support is
  108.      * appropriate for short term storage or RMI between applications running
  109.      * the same version of Swing.  As of 1.4, support for long term storage
  110.      * of all JavaBeans<sup><font size="-2">TM</font></sup>
  111.      * has been added to the <code>java.beans</code> package.
  112.      * Please see {@link java.beans.XMLEncoder}.
  113.      */
  114.     public static class UIResource extends BasicComboBoxEditor
  115.     implements javax.swing.plaf.UIResource {
  116.     }
  117. }


---------------
trainoo.com, c'est fini
n°686159
sironimo
daboulkanietch
Posté le 28-03-2004 à 22:05:14  profilanswer
 

Je te remercie de m'avoir aider


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  comment recuperer un texte écrit dans un JComboBox

 

Sujets relatifs
<xsl:copy> - contenu mixte - recopiage du texte[RESOLU][VB6] Lire un fichier texte
importer fichier texte dans feuille excel?PHP : image se load en petit et cache le texte ...
Test d'une zone de texte[ASP][ACCESS]Récupérer les noms des champs d'une BD
[résolu]lancement de requetes contenu dans des fichiers texte (vb6)[HTML] est-il possible de locker un champ texte [résolu]
Récupérer un mot d'1 ligne en ayant la position de son 1er caractère[Java] récupérer l'identifiant du processeur
Plus de sujets relatifs à : comment recuperer un texte écrit dans un JComboBox


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR