JTable + trie

lolla19_116 Messages postés 27 Date d'inscription dimanche 9 octobre 2005 Statut Membre Dernière intervention 28 octobre 2009 - 30 sept. 2006 à 13:56
lolla19_116 Messages postés 27 Date d'inscription dimanche 9 octobre 2005 Statut Membre Dernière intervention 28 octobre 2009 - 3 oct. 2006 à 12:38
Bonjour, ma question est comment je peux trier un jtable apartir d'une jtextfeild. par exemple si je tape une lettre ou + le jtable liste tt les données qui commence par cette lettre

10 réponses

kyript Messages postés 346 Date d'inscription jeudi 7 avril 2005 Statut Membre Dernière intervention 26 mars 2012
1 oct. 2006 à 03:50
Salut

jTextField

=
new JTextField();...

jTextField

.addKeyListener(
new java.awt.event.KeyAdapter() {

public
void keyTyped(java.awt.event.KeyEvent e) {System.

out.println(
"keyTyped()");
// Action a faire lorsque une lettre est tapée}});
0
lolla19_116 Messages postés 27 Date d'inscription dimanche 9 octobre 2005 Statut Membre Dernière intervention 28 octobre 2009
1 oct. 2006 à 13:20
Bonjour, merci sur la reponce mais c pas ça ce ke je veux
je veux une methode pour faire la recherche directement sur maJtable et le trie apartir de cette recherche ok
0
kyript Messages postés 346 Date d'inscription jeudi 7 avril 2005 Statut Membre Dernière intervention 26 mars 2012
1 oct. 2006 à 13:43
ben c'est bien ca

A chaque lettre tappé dans le JtextField   on trie le resultat  ou on execute une nouvelle requete   ce que tu veut en faite
0
lolla19_116 Messages postés 27 Date d'inscription dimanche 9 octobre 2005 Statut Membre Dernière intervention 28 octobre 2009
1 oct. 2006 à 13:45
oui c ça A chaque lettre tappé dans le JtextField   on trie le resultat 
0

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

Posez votre question
kyript Messages postés 346 Date d'inscription jeudi 7 avril 2005 Statut Membre Dernière intervention 26 mars 2012
1 oct. 2006 à 13:46
Ben le code plus haut est fait pour ca...
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
1 oct. 2006 à 18:07
Salut,

pour avoir une vrai metrise de ce qui est tapé dans un JTextField je te conseil plutot de re def le Docoment et sa methode d'insertion comme ca tu na pas besoin d'alourdir ton JTextField avec un lister clavier

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
kyript Messages postés 346 Date d'inscription jeudi 7 avril 2005 Statut Membre Dernière intervention 26 mars 2012
2 oct. 2006 à 19:29
Salut  peut  tu dévelloper cette méthode de redifir mle document

en quoi ca consiste ?
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
2 oct. 2006 à 20:46
Salut,

oki voici une classe d'exemple avec une micro IHM integrant une fenetre et 3 JTextFields
    - le premier met tous les char en majuscule
    - le deuxieme ne prend que des entiers
    - le troisieme laisse le traitement classic du JTextField
 ATTENTION CODE FAIT POUR LE JDK 1.5 A CAUSE DE L'ENUM:

import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Test extends JFrame{
    private static final long serialVersionUID = 1802199483736051124L;

    public Test(){
        JPanel pane = new JPanel();
       
        //creation des zones de texte
        JTextField txtUpperCase = new JTextField();
        txtUpperCase.setPreferredSize(new Dimension(200, 20));//pour bien voir :P
        txtUpperCase.setDocument(new TextPlainDocument(TextPlainDocument.CaseType.UPPER));//ajout du document upperCase
        pane.add(txtUpperCase);
       
        JTextField txtDigitCase = new JTextField();
        txtDigitCase.setPreferredSize(new Dimension(200, 20));//pour bien voir :P
        txtDigitCase.setDocument(new TextPlainDocument(TextPlainDocument.CaseType.DIGIT));//ajout du document digitCase
        pane.add(txtDigitCase);
       
        JTextField txtNormal = new JTextField();
        txtNormal.setPreferredSize(new Dimension(200, 20));//pour bien voir :P
        //sinon on peut aussi faire mais c'est pas franchement utile
        //txtNormal.setDocument(new TextPlainDocument(null));
        pane.add(txtNormal);
       
        setContentPane(pane);
       
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(220, 110);
        setLocationRelativeTo(null);
    }

    public static void main(String[] args) {
        new Test().setVisible(true);
    }

}

maintenant voici la classe redefinissant le modele d'insertion du JTextField (ref javadoc JTextField):

import java.awt.Toolkit;

import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;

public class TextPlainDocument extends PlainDocument {
    private static final long serialVersionUID = 6695375905302469591L;

    public enum CaseType{
        DIGIT,
        UPPER;
    }
   
    private CaseType caseType = null;
   
   
    public TextPlainDocument(CaseType caseType){
        this.caseType = caseType;
    }
   
    public void insertString(int offs, String str, AttributeSet a)  throws BadLocationException {
        if(caseType == null){
            super.insertString(offs, str, a);
            return ;
        }
        if (str == null)  return;

        switch(caseType){
            case UPPER:
                char[] upper = str.toCharArray();
                for (int i = 0; i < upper.length; i++) {
                    upper[i] = Character.toUpperCase(upper[i]);
                }
                super.insertString(offs, new String(upper), a);
                break;
            case DIGIT:
                char[] tmp = str.toCharArray();
                String digit = "";
                for (int i = 0; i < tmp.length; i++) {
                    if(Character.isDigit(tmp[i]))
                        digit += tmp[i];
                    else
                        Toolkit.getDefaultToolkit().beep();
                }
                super.insertString(offs, digit, a);
                break;
        }
    }
}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
kyript Messages postés 346 Date d'inscription jeudi 7 avril 2005 Statut Membre Dernière intervention 26 mars 2012
3 oct. 2006 à 08:42
cool

merci pour l'info   ca pourrat servir....
0
lolla19_116 Messages postés 27 Date d'inscription dimanche 9 octobre 2005 Statut Membre Dernière intervention 28 octobre 2009
3 oct. 2006 à 12:38
merci boco
0
Rejoignez-nous