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

 Java Discussion :

Comparaison chiffre Jtable


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 226
    Par défaut Comparaison chiffre Jtable
    voila je vous explique.

    J'ai une Jtable avec plusieurs enregistrement et 4 colone.

    exemple:

    test1 20 Paris oui
    test2 60 Lyon oui
    test3 70 Toulouse non
    ...

    je voudrais faire une comparaison au niveau des chiffres pour prendre le plus grand et pouvoir le récupérer plus tard.

    j'ai pensé a une boucle for

    for int i=O; Jtable(); i++

    mais je sais pas trop comment ça fonctionne

    je vous remecie d'avance

  2. #2
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Par défaut
    Salut,

    Il suffirait d'avoir ces entier dans un tableau de int. Tu peux ensuite faire un tri de ce tableau avec la classe Arrays et la méthode sort. Il suffit ensuite de prendre le premier ou le dernier, je sais plus.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 226
    Par défaut
    je te remercie de ton aide mais pour moi "" c'est du chinois ce que tu ma dit.

    Sinon si ma liste s'agrandit, je sais pas si il es possible de faire un test direct dans le Jtable et la comparer avec une variable créé si elle est plus grande je la change par celle ci.

    Mais je sais pas comment faire

  4. #4
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Par défaut
    Si j'ai bien compris, tu veux connaitre l'entier le plus long parmis une colonne d'entier dans une JTable.

    Il suffit donc que toutes ces valeurs soient dans un tableau (ou une collection), grace a une méthode que tu écrira. Ensuite tu tri ce tableau comme je te l'ai dit. Et forcement le premier ou le dernier du tableau (tout dépend du sens du tri, ascendant ou descendant) sera le plus grand ou le plus petit.

    Voici un exemple simple dont tu pourra t'inspirer, si cela te convient :

    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
    import java.awt.Color;
    import java.util.Arrays;
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.table.TableModel;
     
    public class Test {
     
    	public static void main(String[] args) {
    		Object[][] donnees = {  
    		      {10, "Astral", "standard", Color.red, Boolean.TRUE}, 
    		      {5, "Mistral", "standard", Color.yellow, Boolean.FALSE}, 
    		      {50, "Oasis", "standard", Color.blue, Boolean.FALSE},
    		      {40, "boomerang", "compétition", Color.green, Boolean.TRUE},
    		      {25, "Omega", "performance", Color.cyan, Boolean.TRUE}, 
    		} ;
    		String[] titreColonnes = { "index","modèle", "homologation",
    		                           "couleur", "vérifiée ?"}; 
    		JTable table = new JTable(donnees, titreColonnes);
     
    		JFrame frame = new JFrame();
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		frame.add(new JScrollPane(table));
    		frame.pack();
    		frame.setLocationRelativeTo(null);
    		frame.setVisible(true);
     
    		// récupérer les valeurs de la colonne 
    		int[] tableau = toIntArray(table, 0);
    		// trier
    		Arrays.sort(tableau);
    		// afficher les valeur les plus forte et plus faible
    		System.out.println("Valeur la plus faible : "+tableau[0]);
    		System.out.println("Valeur la plus forte : "+tableau[tableau.length - 1]);
    	}
     
    	private static int[] toIntArray(JTable table, int column) {
    		TableModel model = table.getModel();
    		int[] tableau = new int[model.getRowCount()];
    		for (int row = 0 ; row < model.getRowCount() ; row++) {
    			Object o = model.getValueAt(row, column);
    			if (o instanceof Integer) {
    				tableau[row] = (Integer) o;
    			}
    		}
    		return tableau;
    	}
     
    }

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 226
    Par défaut
    j'ai testé mais sans succes cela me renvoie a chaque fois la valeur 0

    je sais pas pkoi
    mes chiffre etait en chaine de caractere mais j'ai changer en int, meme valeur retourné.

    voila sa marche pas

  6. #6
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Par défaut
    Le type de ta colonne doit être Integer [car il y a un test de type : if (o instanceof Integer)], sinon cela renverra toujours 0. Il faut aussi en utilisant la méthode toIntArray, passer le bon numéro de colonne en argument.
    Tu peux constater que dans mon exemple, cela fonctionne parfaitement... Cela vient donc d'une mauvaise utilisation.

    Eventuellement post ton code.

Discussions similaires

  1. comparaison chiffres en C#
    Par lovedesitaliens dans le forum C#
    Réponses: 3
    Dernier message: 10/08/2010, 09h54
  2. [MySQL] comparaison chiffres dasn une table
    Par aurel22000 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 19/03/2010, 20h39
  3. Comparaison chiffre text
    Par gentilman_delphi dans le forum Langage
    Réponses: 9
    Dernier message: 10/02/2008, 19h51
  4. [ DELPHI 7 ] Comparaison chiffre en binaire
    Par Targan dans le forum Débuter
    Réponses: 3
    Dernier message: 31/08/2007, 19h02
  5. Comparaison chiffre binaire
    Par bouchette63 dans le forum Langage
    Réponses: 2
    Dernier message: 08/06/2006, 12h30

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