begin process at 2010 03 21 20:45:57
  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 comment gérer mes JFrame avec les JMenuBar [ par versLeBut ] Salut tout le monde ,je suis débutante en java et meme en Graphique .J'aimerai réaliser une application qui contient un grand nombre de JFrame (client Fenetre java [ par jcbodart ] Bonjour débutant en java je voudrais développer une page ce qui est fait, et à la validation de celle ci déclencher un appel à une autre classe est ce Puzzle [ par Tibule40 ] Bonjour à tous Je cherche à créer un puzzle. J'ai opté pour le principe le plus simple : j'ouvre une image, je la divise en rectangles et je les me


Nos sponsors


Sondage...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
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 : 0,452 sec (4)

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