IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

problème avec curseur et jtable


Sujet :

Composants Java

  1. #1
    Provisoirement toléré
    Inscrit en
    Avril 2007
    Messages
    679
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 679
    Points : 76
    Points
    76
    Par défaut problème avec curseur et jtable
    salut tout le monde j'ai un tableau et un composant jtextfield
    je cherche à faire si je tape un caractère sur clavier le curseur se positionne sur une ligne de tableau
    est ce que ça c'est possible
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
     
    jTextField.addKeyListener(new java.awt.event.KeyAdapter() {
    public void keyReleased(java.awt.event.KeyEvent e) {
    System.out.println("keyReleased()"); // TODO Auto-generated Event stub keyReleased()
    try{					    	 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance(); 
    String url= "jdbc:odbc:ODBC1";
    String user = "user";
    String pass = "pass";
    Connection connection = DriverManager.getConnection(url,user,pass);
    Statement instruction = connection.createStatement();
     String sql = "select GPNOPR,GPDN,GPLN,GPSEX   from  GPM  where  GPMAT like   '%"+jTextField.getText()+"%'  ";
     ResultSet resultat = instruction.executeQuery(sql);
      while (resultat.next()){ 	
       nom       = resultat.getString("GPNOPR");  
    adresse       = resultat.getString("GPDN");
      lieu       = resultat.getString("GPLN");
     sex       = resultat.getString("GPSEX");
    }
    jLabel5.setText(nom);
     jLabel51.setText(adresse);
     jLabel52.setText(lieu);
    					        }
    catch (Exception ex) {
        System.out.println("jjjjjjjjjjj "+ex.getMessage());
       ex.printStackTrace() ;
    }
    			});
    mon tableau est jTable (je veux pointe sur une ligne

  2. #2
    Membre actif Avatar de uhrand
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 203
    Points : 275
    Points
    275
    Par défaut JTable recherche rapide
    Citation Envoyé par minooo Voir le message
    Mon tableau est jTable (je veux pointer sur une ligne).
    Je ne comprend pas vraiment ce que tu veux faire. Cependant, j'ai ici un code qui pourrait éventuellement t'aider.
    La méthode suivante installe une fonction de «Recherche rapide» pour un tableau (JTable). L'échantillon met en œuvre la recherche à la première colonne. On suppose qu'elle contienne du texte simple et n'est pas modifiable. La recherche se lance automatiquement lorsque le "focus" est sur une cellule non-modifiable et quand on tape le début du texte désiré sur le clavier.

    NOTE: La "Property" suivante peut également mettre en œuvre la recherche rapide pour les cellules modifiables:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    table.putClientProperty ("JTable.autoStartsEdit", Boolean.FALSE);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    public static void setQuickSearch(final JTable table) {
    //    table.putClientProperty("JTable.autoStartsEdit", Boolean.FALSE);
        final JTextField searchField = new JTextField();
        class Search {
     
            void search() {
                table.clearSelection();
                String text = searchField.getText();
                if (text.length() == 0) {
                    return;
                }
                for (int row = 0; row < table.getRowCount(); row++) {
                    Object val = table.getValueAt(row, 0);
                    String value = val != null ? val.toString() : "";
                    if (value.toLowerCase().startsWith(text.toLowerCase())) {
                        table.changeSelection(row, 0, false, false);
                        break;
                    }
                }
            }
        }
        table.addKeyListener(new KeyAdapter() {
     
            @Override
            public void keyPressed(final KeyEvent evt) {
                char ch = evt.getKeyChar();
                if (!Character.isLetterOrDigit(ch)) {
                    return;
                }
                int selectedRow = table.getSelectedRow();
                int selectedColumn = table.getSelectedColumn();
                Object clientProperty = table.getClientProperty("JTable.autoStartsEdit");
                if ((clientProperty == null || (Boolean)clientProperty)  &&
                        selectedRow >= 0 && selectedColumn >= 0 &&
                        table.isCellEditable(table.getSelectedRow(), table.getSelectedColumn())) {
                    return;
                }
                searchField.setText(String.valueOf(ch));
                final Search s = new Search();
                s.search();
                final JDialog d = new JDialog();
                d.setUndecorated(true);
                d.setSize(150, 20);
                d.setLocation(table.getTableHeader().getLocationOnScreen());
                final JLabel lb = new JLabel("Quick Search: ");
                d.add(lb, BorderLayout.LINE_START);
                d.add(searchField);
                d.setVisible(true);
                searchField.getDocument().addDocumentListener(new DocumentListener() {
     
                    public void insertUpdate(final DocumentEvent e) {
                        s.search();
                    }
     
                    public void removeUpdate(final DocumentEvent e) {
                        s.search();
                    }
     
                    public void changedUpdate(final DocumentEvent e) {
                        s.search();
                    }
                });
                searchField.addFocusListener(new FocusListener() {
     
                    @Override
                    public void focusGained(final FocusEvent e) {
                    }
     
                    @Override
                    public void focusLost(final FocusEvent e) {
                        d.dispose();
                    }
                });
                Action exit = new AbstractAction() {
     
                    @Override
                    public void actionPerformed(final ActionEvent e) {
                        d.dispose();
                    }
                };
                searchField.setAction(exit);
                searchField.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
                        KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "exit");
                searchField.getActionMap().put("exit", exit);
            }
        });
    }

Discussions similaires

  1. Problème avec curseur personnalisé.
    Par Stevens.Georges dans le forum Langage
    Réponses: 2
    Dernier message: 13/10/2014, 18h33
  2. Problème avec listner de JTable avec JComboBox
    Par amine1980 dans le forum Composants
    Réponses: 0
    Dernier message: 12/02/2013, 01h06
  3. [XL-2010] problème avec curseur de souris
    Par tompom3108 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/01/2012, 12h19
  4. problème avec curseur "for update"
    Par funkyjul dans le forum Développement
    Réponses: 3
    Dernier message: 21/01/2009, 11h55
  5. [débutant] problème avec le curseur (sablier)
    Par bat dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 01/12/2004, 08h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo