Calculatrice sur java

Résolu/Fermé
bouchra19 Messages postés 161 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 13 décembre 2013 - 6 mai 2011 à 10:32
 beber005 - 6 mai 2011 à 12:20
Bonjour,

Je suis débutante en java et suis un cours de création de calculatrice graphique.
Le problème est que j'ai créé avec succès la calculatrice (sans les bouton -, + et *) et lorsque j'ai implanter un nouveau panneau (panneauOpérations) dans lequel j'ai mis mes nouveaux boutons ça n'a pas marché et on m'a affiché le message suivant dans la console java:

Exception in thread "main" java.lang.IllegalArgumentException: cannot add to layout: unknown constraint: west
at java.awt.BorderLayout.addLayoutComponent(BorderLayout.java:463)
at java.awt.BorderLayout.addLayoutComponent(BorderLayout.java:424)
at java.awt.Container.addImpl(Container.java:1108)
at java.awt.Container.add(Container.java:419)
at Calculatrice.<init>(Calculatrice.java:86)
at Calculatrice.main(Calculatrice.java:97)


Voilà le code java:(le code que j'ai ajouté est souligné)

import javax.swing.*;
import java.awt.GridLayout;
import java.awt.BorderLayout;

public class Calculatrice {

	// Déclaration de tous les composants de la calculatrice.
	JPanel contenuFenêtre;
	JTextField champAffichage;
	JButton bouton0;
	JButton bouton1;
	JButton bouton2;
	JButton bouton3;
	JButton bouton4;
	JButton bouton5;
	JButton bouton6;
	JButton bouton7;
	JButton bouton8;
	JButton bouton9;
	JButton boutonVirgule;
	JButton boutonEgale;
	JPanel panneauChiffres;
	JPanel panneauOpérations;
	JButton boutonPlus;
	JButton boutonMoins;
	JButton boutonFois;
	
	Calculatrice() {
	contenuFenêtre = new JPanel();
	BorderLayout dispositionl = new BorderLayout();
	contenuFenêtre.setLayout(dispositionl);
	champAffichage = new JTextField(30);
	contenuFenêtre.add("North", champAffichage);
	
	bouton0 = new JButton("0");
	bouton1 = new JButton("1");
	bouton2 = new JButton("2");
	bouton3 = new JButton("3");
	bouton4 = new JButton("4");
	bouton5 = new JButton("5");
	bouton6 = new JButton("6");
	bouton7 = new JButton("7");
	bouton8 = new JButton("8");
	bouton9 = new JButton("9");
	boutonVirgule = new JButton(",");
	boutonEgale = new JButton("=");
	boutonPlus = new JButton("+");
	boutonMoins = new JButton("-");
	boutonFois = new JButton("*");
	
	panneauChiffres = new JPanel();
	GridLayout disposition2 = new GridLayout(4, 3);
	panneauChiffres.setLayout(disposition2);
	
	panneauChiffres.add(bouton1);
	panneauChiffres.add(bouton2);
	panneauChiffres.add(bouton3);
	panneauChiffres.add(bouton4);
	panneauChiffres.add(bouton5);
	panneauChiffres.add(bouton6);
	panneauChiffres.add(bouton7);
	panneauChiffres.add(bouton8);
	panneauChiffres.add(bouton9);
	panneauChiffres.add(bouton0);
	panneauChiffres.add(boutonVirgule);
	panneauChiffres.add(boutonEgale);
	
	contenuFenêtre.add("Center", panneauChiffres);

	panneauOpérations = new JPanel();
	GridLayout disposition3 = new GridLayout(3,1);
	panneauOpérations.setLayout(disposition3);
	panneauOpérations.add(boutonPlus);
	panneauOpérations.add(boutonMoins);
	panneauOpérations.add(boutonFois);
	contenuFenêtre.add("west", panneauOpérations);
	
	JFrame frame = new JFrame("Calculatrice");
	frame.setContentPane(contenuFenêtre);
	frame.pack();
	frame.setVisible(true);
	}

	public static void main(String[] args) {
	Calculatrice calc = new Calculatrice();
	}
}



Merci d'avance de vos réponses
A voir également:

1 réponse

Bonjour,
Alors déjà premièer asctuce pour simplifier ton code, crée une boucle pour ne pas écrire X fois tes JButton un truc du genre :
for(int i=0; i<9;i++){
JButton button[i];
}

Deuxième chose, tu utilise mal ton borderLayout :
"contenuFenêtre.add("North", champAffichage);"
C'est comme ça qu'il faut faire :
"contenuFenêtre.add(champAffichage,borderLayout.North);
2
bouchra19 Messages postés 161 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 13 décembre 2013 20
6 mai 2011 à 11:31
Merci bcp pour ton aide beber005 :)

le problème est résolu
0
De rien avec plaisir =)
0