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.
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);
}
}
rand()%800+100
Bah tu fais entre 0 et 899 et puis tu ajoutes 100 au résultat...
De cette façon la plus petite valeur que tu peux avoir sera 100 et la plus grande 999
Après je comprends pas ce qu'il y'a dans ton String[] plaquettes...
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
Le 12 juillet 2018 à 20:07:13 PetyrLeBelge a écrit :
Après je comprends pas ce qu'il y'a dans ton String[] plaquettes...
En lisant les règles, j'ai vu que le jeu était en fait constitué de Plaquettes et que les chiffres dans cette chaîne sont les seuls qui peuvent apparaître. Et je cherche un moyen d'en choisir six de façon aléatoire afin de les mettres dans les boutons ou il y a les "NB"
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
Total est un entier, JButton() prends une string en paramètre
Le 15 juillet 2018 à 12:34:17 stacksmashing a écrit :
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
Total est un entier, JButton() prends une string en paramètre
Il y a moyen de passer le JButton en Int ou je dois m'arranger pour que Total devienne un String ?
Tu peux faire les deux:
-surcharger le constructeur de JButton pour lui donner à manger un int
-convertir le int en string : new JButton(String.valueOf(Total))
Le 15 juillet 2018 à 13:22:19 stacksmashing a écrit :
Tu peux faire les deux:
-surcharger le constructeur de JButton pour lui donner à manger un int
-convertir le int en string : new JButton(String.valueOf(Total))
Merci, ça fonctionne parfaitement.
Maintenant, si tu sais comment on fait pour choisir six elements aleatoires de la chaine "plaquettes", ça me permettra de passer à la suite
C'est bon, j'ai trouvé un moyen via nextInt, malheureusement, cela bloque tout de même.
j'ai rajouté : "private static String nb1 = plaquettes[Random.nextInt(plaquettes.length)];" mais il m'indique avec nextInt "non static method nextInt(int) cannot be referenced from a static context"
Quelqu'un sait d'où vient le problème ?
Random n'est pas utilisable de manière static, tu dois instancier un object Random pour avoir la methode nextInt() :
Random random = new Random();
int nombreAleatoire = random.nextInt(plaquettes.lenght)
ça fonctionne. Mais problème, il me sort parfois des chiffres qui ne font pas partie de plaquettes.
pourtant, j'utilise bien plaquettes.length
nextInt retourne un indice de ton tableau plaquette j'imagine, donc la valeur que tu veux est dans plaquettes[nombreAleatoire]