begin process at 2012 02 14 19:34:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Divers

 > 

Débutant(e)

 > 

Demande pour Actions sur des boutons


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Demande pour Actions sur des boutons

dimanche 29 mars 2009 à 23:23:26 | Demande pour Actions sur des boutons

javalang

Bonjour, les gars !
Quelqu'un pourrait-il m'aider? Je suis débutant en Java et je ne sais pas encore mettre de l'ordre dans mes codes.
Je vous donne mon code.  Quand je clique sur btnReady, huit lettres sont générées aléatoirement, mais je n'arrive pas à les affecter aux huit boutons.
En plus, je demande du code pour que lorsque je clique sur l'un des huit boutons, que la lettre inscrite sur le bouton soit affectée dans un JTextField de la grille.
Besoin d'aide en urgence pour ce travail de classe. Merci
Voici mon code

=-=DEBUT DU CODE=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


import java.awt.Component;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JPanel;

public class LettresBoutons extends JPanel {

    private GridBagLayout layout;
    private GridBagConstraints contraintes;
    private JButton btnReady;
    private ButtonHandler btnHandler;
    private final String CONSONNES = "bcdfghjklmnpqrstvwxz";
    private final String VOYELLES = "aeiouy";
    private final String AUTRES = "bacedifoguhyjakelimonupyqaresitovuwyxaz";

    public LettresBoutons() {
        layout = new GridBagLayout();
        setLayout(layout);
        contraintes = new GridBagConstraints();
        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(2, 4));

        panel.setLayout(new GridLayout(2, 4));
        panel.add(new JButton(" "));
        panel.add(new JButton(" "));
        panel.add(new JButton(" "));
        panel.add(new JButton(" "));
        panel.add(new JButton(" "));
        panel.add(new JButton(" "));
        panel.add(new JButton(" "));
        panel.add(new JButton(" "));
        btnReady = new JButton("Ready ?");
        btnHandler = new ButtonHandler();
        btnReady.addActionListener((ActionListener) btnHandler);

        addComp(panel, 0, 0, 1, 1);
        addComp(btnReady, 1, 0, 4, 1);
    }

    private void JetLettres() {
        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(2, 4));

        final int nbL = 8;
        final int nbVoyelles = 3;
        final int nbConsonnes = 3;
        final int nbAutres = 2;

        ArrayList<String> lettres = new ArrayList<String>();

        Random random = new Random(System.currentTimeMillis());

        for (int i = 0; i < nbVoyelles; ++i) {
            char voyelle = VOYELLES.charAt(random.nextInt(VOYELLES.length()));
            lettres.add("" + voyelle);
        }
        for (int j = 0; j < nbConsonnes; ++j) {
            char consonnes = CONSONNES.charAt(random.nextInt(CONSONNES.length()));
            lettres.add("" + consonnes);
        }
        for (int k = 0; k < nbAutres; ++k) {
            char autre = AUTRES.charAt(random.nextInt(AUTRES.length()));
            lettres.add("" + autre);
        }
        Collections.shuffle(lettres);
        System.out.println(lettres);

        for (int m = 0; m < 8; ++m) {
            panel.add(new JButton(lettres.get(m)));
            // ============================================================
            // TOUT SE PASSE COMME JE VEUX JUSQU'A CE NIVEAU OU JE VOUDRAIS
            // AFFECTER UNE LETTRE A CHAQUE BOUTON.
            // MAIS JE NE M'EN SORS PAS.
            // ============================================================
        }

    }

    private void addComp(Component comp, int x, int y, int h, int w) {
        contraintes.gridx = y;
        contraintes.gridy = x;
        contraintes.gridwidth = h;
        contraintes.gridheight = w;
        layout.setConstraints(comp, contraintes);
        this.add(comp);
    }

    private class ButtonHandler implements ActionListener {

        public void actionPerformed(ActionEvent event) {
            if (event.getSource() == btnReady) {
                JetLettres();
            }
        }
    }
}



=-=FIN DU CODE=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
jeudi 2 avril 2009 à 16:46:12 | Re : Demande pour Actions sur des boutons

DMK04

Salut,

Si j'ai bien compris, tu as 8 boutons vides, et un bouton "Ready". Quand tu cliques sur "Ready" tu voudrais changer les "labels" de tes 8 boutons vides, et leurs affecter une lettre aléatoirement ?

Je pense que je mieux serait mettre un tableau de boutons dans les attributs de ta classe que tu initialisera dans ton constructeur.

Il te suffira ensuite de modifier les labels et actions des boutons là où tu voulais le faire :), sauf qu'au lieu d'ajouter des nouveaux boutons, tu modifies ceux qui ont dans le tableau créé précédemment.

A+
jeudi 2 avril 2009 à 17:15:19 | Re : Demande pour Actions sur des boutons

javalang

Merci, je me mettrai à cela tout de suite.
jeudi 2 avril 2009 à 18:12:16 | Re : Demande pour Actions sur des boutons

DMK04

N'oublie pas de les ajouter dans ton panel comme tu l'as déjà fait :

...
    private JButton[] tabBtnRdm = new JButton[8]; // je me remets doucement au Java et je ne sais plus comment il faut allouer ça...
...

...
// tes 'panel.add(new JButton(" "));' sont à remplacer par quelque chose comme ça, encore une fois je ne garanti rien
for(int i=0; i<8; ++i)
{
   tabBtnRdm[i] = new JButton(" ");
   panel.add(tabBtnRdm[i]);
}
...

samedi 4 avril 2009 à 00:20:44 | Re : Demande pour Actions sur des boutons

DMK04

Message de javalang :

Salut, DMK04 !
Je te remercie pour ton aide.
Avec le code ci-après, j'ai pu générer et placer les lettres sur les jbuttons.
Il me reste le transfert des lettres de chaque dans la gille (jtextfield).
============
    private ArrayList<String> GenLettres() {
        final int nbVoyelles = 3;
        final int nbConsonnes = 3;
        final int nbAutres = 2;

        ArrayList<String> lettres = new ArrayList<String>();

        Random random = new Random(System.currentTimeMillis());

        for (int i = 0; i < nbVoyelles; ++i) {
            char voyelle = VOYELLES.charAt(random.nextInt(VOYELLES.length()));
            lettres.add("" + voyelle);
        }
        for (int j = 0; j < nbConsonnes; ++j) {
            char consonnes = CONSONNES.charAt(random.nextInt(CONSONNES.length()));
            lettres.add("" + consonnes);
        }
        for (int k = 0; k < nbAutres; ++k) {
            char autre = AUTRES.charAt(random.nextInt(AUTRES.length()));
            lettres.add("" + autre);
        }
        Collections.shuffle(lettres);
        System.out.println(lettres);
        
        return lettres;
    }
============




Salut,

Pour le JTextField, il faut le déclarer en attribut de ta classe aussi, le rajotuer a ton interface graphique, et rajouter quelque chose comme ca dans ta methode buttonHandler :

public void actionPerformed(ActionEvent event) {
            if (event.getSource() == btnReady) {
                JetLettres();
            }
      for(int i=0; i<8; ++i){
              if (event.getSource() == tabBtnRdm[i]) {
               /* ici tu met a jour le texte de ton attribut */
               /* qqch comme ca, encore une fosi je ne garantit rien sur les noms des methodes, mais je pense que c'est suffisant pour que tu comprennes */
                  jtxtfld.setValue(jtxtfld.getValue()+tabBtnRdm[i].getLabel());
            }
        }



N'oublies pas dans ton constructeur de rajouter l'event listener sur tes boutons

...
for(int i=0; i<8; ++i)
{
   tabBtnRdm[i] = new JButton(" ");
   panel.add(tabBtnRdm[i]);
   tabBtnRdm[i].addActionListener((ActionListener) btnHandler);
}

...


A+



Cette discussion est classée dans : int, add, panel, import, jbutton


Répondre à ce message

Sujets en rapport avec ce message

imprime trop gros [ par jackhabbot ] Bonjour à tous,je souhaite imprimer le contenu d'une fenêtre à une certaine échelle, car pour le moment lorsque j'imprime, c'est environ 2 fois plus g Erreur à l'exécution d'un applet [ par Warwick ] BonjourJe vous présente les erreurs que j'ai lors de l'exécution de mon applet java.lang.NullPointerException at java.awt.Container.addImpl(Con Container Component [ par anzize ] Bonjour tout le monde !J'ai un le problème suivant :JPanel panel=new JPanel();JButton buton1=new JButton("1");JButton buton2=new JButton("2");panel.ad traitement d'image dans une applet [ par maettep ] Bonjour voilà il nous est demandé de réaliser une interface graphique qui charge une image et qui réalise des modifications dessus à l'aide de boutons fenetre + dessin + panel [ par effa87rujo ] Bonjour, je souhaiterais créer une fenetre contenant des formes géométriques. Chaque forme devant etre insérée dans un panel. ca marche tant que je n probleme avec buildContentPane [ par Nayra ] bonjour, je débute avec le développement d'interfaces graphiques avec Swing sous eclipse. j'ai réalisé un code qui permet de créer une interface avec Impression d'un panel dans un format etiquette [ par al94140 ] Bonjour, Je développe une application java pour imprimer un nom et un prénom d'un Jpanel sur une étiquette. Je me suis servie de la classe MpanelPrint JInternalFrame [ par nassib0001 ] Bonjour, j'aimerai dessiner la classe grapheVis dans une JInternal( au lieu de laficher dans une Label) frame mais j'ai pas pu voila mon code et merc Bouton permettant d'accéder a un sous menu [ par freeze84 ] Bonjour, Jai un menu principal avec dedans 3 Boutons j'aimerais que ces boutons me permettent d'accéder a des sous menu (avec MouseListener). Pouvez v Dessiner une grille dans mon panel ?? [ par charmeurga ] Bonsoir, voici mon problème: Je souhaiterais dessiner une grille de 64/64 dans sur ma panel NB:Je suis débutant en java[^^sad2] [code=java] import


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,307 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales