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 :

Récupération d'un élément aléatoire


Sujet :

Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 9
    Points : 3
    Points
    3
    Par défaut Récupération d'un élément aléatoire
    Bonjour, bonsoir,

    je suis en ce moment même en train de plancher sur un "compte est bon". Mais je bloque un peu. J'ai une liste de caractères en private et j'aimerais que les six boutons dans le jpNord, celui avec les nb1 à nb6, aille récupérer un des éléments, mais de manière aléatoire.

    Enfin, j'aimerais que le premier JButton du second BorderLayout, celui avec tot, puisse calculer un Math.random compris entre 100 et 999, mais malheureusement, je ne trouves pas de techniques pour l'empecher de descendre en dessous de 100.

    Alors voila, si quelqu'un à une solution ou une alternative, je suis preneur.

    Merci d'avance à ceux qui voudront bien m'aider.



    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
     
    import javax.swing.*;
    import java.awt.*;
     
     
    public class Visuel extends JFrame{
        private static String[] plaquettes={"1","1","2","2","3","3","4","4","5","5","6","6","7","7","8","8","9","9","10","10","25","25","50","50","75","75","100","100"};
        public Visuel(){
            super("Visuel");
            JPanel jpFond = new JPanel();
            BorderLayout bl = new BorderLayout();
            jpFond.setLayout(bl);
     
            JPanel jpNord = new JPanel();
            jpNord.add(new JButton(nb1));
            jpNord.add(new JButton(nb2));
            jpNord.add(new JButton(nb3));
            jpNord.add(new JButton(nb4));
            jpNord.add(new JButton(nb5));
            jpNord.add(new JButton(nb6));
            jpFond.add(jpNord,BorderLayout.NORTH);
     
     
            JPanel jpOuest = new JPanel();
            jpOuest.setLayout(new GridLayout(4,1));
            jpOuest.add(new JButton(total));
            jpOuest.add(new JButton("+"));
            jpOuest.add(new JButton("-"));
            jpOuest.add(new JButton("/"));
            jpOuest.add(new JButton("x"));
            jpFond.add(jpOuest,BorderLayout.WEST);
     
     
            this.setContentPane(jpFond);
            this.pack();
            this.setVisible(true);
        }
    }

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Trois techniques pour obtenir un int aléatoire entre deux bornes, n et m, avec n<m.

    1. Avec Math.random(), qui retourne un double, compris entre 0 et 1, il faut multiplier le double par m-n, et caster en int, pour obtenir un nombre entre 0 et m-n, puis ajouter n.
    2. Avec la classe Random, on a une méthode nextInt() qui permet d'avoir un nombre entre 0 et x. Donc pour avoir un nombre entre n et m=x+n, il suffit ajouter n (on est directement à la fin du cas précédent).
    3. Avec ThreadLocalRandom, on a directement une méthode nextInt(origin, bound), donc il suffit d'écrire :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      int a = ThreadLocalRandom.current().nextInt(n, m);
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Alors voila, j'ai un léger problème. J'ai trouvé une explication en cherchant un peu, sauf que je tombe sur ça. Et je ne vois pas comment régler le souci

    Nom : Sans titre.png
Affichages : 281
Taille : 148,2 Ko


    De plus, je cherche toujours comment choisir un élément de façon aléatoire dans la chaîne "Plaquettes". Si quelqu'un à une solution
    Images attachées Images attachées  

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    probleme resolu en ce qui concerne le random.

    Il ne me reste plus qu'a reussir à sortir des elements de façon aleatoire de la chaine "plaquettes". Si quelqu'un sait comment s'y prendre, ça me serait très utile.

  5. #5
    Membre averti
    Avatar de anadoncamille
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2007
    Messages
    395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 395
    Points : 310
    Points
    310
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    pour le tableau plaquettes, il te suffit de faire une fonction contenant une ligne de ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String resultat = plaquettes[Random.nextInt(plaquettes.lenth)];
    resultat contient alors un élément aléatoire du tableau plaquettes.
    __________________________________
    | +
    | Sylvain Tournois - Création logicielle
    |
    | sylv.tournois.free.fr
    |

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Nouveau problème : il me met "non static method nextInt(int) cannot be referenced from a static context" a cause de nextInt.

    Quelqu'un pourrait-il m'indiquer d'où pourrait venir le problème ?

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ouais, ca dit que nextInt est une méthode d'instance, et que donc tu ne peux pas l'appeler directement sur la class Random, qu'il te faut une instance de Random. Donc créer une instance de random et appelle nextInt dessus.

Discussions similaires

  1. Récupération d'un élément d'une colonne
    Par atlain75 dans le forum BIRT
    Réponses: 1
    Dernier message: 27/04/2009, 17h25
  2. Réponses: 3
    Dernier message: 09/10/2007, 10h50
  3. Récupération de certains éléments d'une BDD
    Par DaisyVIP dans le forum ASP.NET
    Réponses: 27
    Dernier message: 08/06/2007, 15h20
  4. [Formulaire] Récupération d'un élément de select
    Par toddy_101 dans le forum Langage
    Réponses: 7
    Dernier message: 22/01/2007, 17h05
  5. [PL/SQL] Curseur - Récupération du dernier élément
    Par dupont166 dans le forum Oracle
    Réponses: 5
    Dernier message: 27/12/2005, 04h57

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