Probléme Java sur SetLocation(x,y); [Résolu]

iloweb 8 Messages postés dimanche 2 octobre 2005Date d'inscription 22 mars 2007 Dernière intervention - 22 mars 2007 à 19:42 - Dernière réponse : Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention
- 22 mars 2007 à 21:31
Bonjour,

Je suis entrain de develloper une petit calculette pour apprendre les bases du java et pour la suite faire de plus grand projet.

Le probléme ce pause sur SetLocation(x,y), il ne place pas mes différent objet ou je le souhaite,
Il place tous les bouton, textedit... l'un dériére l'autre.

Voici le code, en gras la ou j'aimerai que la fonction setlocation fonctionne.

Merci de votre aide

import java.awt.Graphics;
import java.awt.*;
import java.util.*;
import java.awt.event.*;
import java.applet.Applet;
import java.lang.Double;
import java.awt.Component;
import java.awt.Button;
import java.applet.*;
import java.*;

public class Calculette extends Applet implements ActionListener  

    //Déclaration de tous les objets créés   
    Color couleurFond, couleurTexte;
    Font fonteTitre, fonteTexte;
    TextField champResultat, champNumber1, champNumber2;
   
    //Déclaration des variables pour le programme
    String titre, instr1, instr2, instr3, number1, number2, stringResultat, MsgTexte= "Saisir un nombre ici", MsgResultat="Le resultat sera ici";
    double dnumber1, dnumber2, dresultat;
   
   
    public void init()
    { 
        //Définition des nouvelles couleurs, initialisation des polices et du texte
        couleurFond = new Color(238, 242, 247);
        couleurTexte = new Color(0, 21, 102);
        titre = new String("Calculette simple");
        instr1 = new String("1. Entrer deux nombres");
        instr2 = new String("2. Sélectionner une opération");
        instr3 = new String("3. Le résultat s'affiche");
        fonteTitre=new Font("Dialog", Font.BOLD+Font.ITALIC, 14);
        fonteTexte=new Font("Dialog", 0 , 10);
   
        //Création et affichage des boutons et des champs   
       
        //Bouton +
        Button boutonPlus;
        add(boutonPlus = new Button("+"));
        boutonPlus.setLocation(3400,2353);
        boutonPlus.setForeground(couleurTexte);
        boutonPlus.addActionListener(this);
        boutonPlus.setActionCommand("addi");
       
        //Bouton -
        Button boutonMoins;
        add(boutonMoins = new Button("-"));
        boutonMoins.setLocation(40,20);
        boutonMoins.setForeground(couleurTexte);
        boutonMoins.addActionListener(this);
        boutonMoins.setActionCommand("minus");
       
        //Bouton *
        Button boutonMult;
        add(boutonMult = new Button("X"));
        boutonMult.setLocation(60,20);
        boutonMult.setForeground(couleurTexte);
        boutonMult.addActionListener(this);
        boutonMult.setActionCommand("mult");
       
        //Bouton /
        Button boutonDiv;
        add(boutonDiv = new Button("/"));
        boutonDiv.setLocation(80,20);
        boutonDiv.setForeground(couleurTexte);
        boutonDiv.addActionListener(this);
        boutonDiv.setActionCommand("div");
       
        //Bouton Rac
        Button boutonRac;
        add(boutonRac = new Button("Rac"));
        boutonRac.setLocation(140,60);
        boutonRac.setForeground(couleurTexte);
        boutonRac.addActionListener(this);
        boutonRac.setActionCommand("racine");       
       
        //Bouton +/-
        Button boutonPM;
        add(boutonPM = new Button("+/-"));
        boutonPM.setLocation(65,60);
        boutonPM.setForeground(couleurTexte);
        boutonPM.addActionListener(this);
        boutonPM.setActionCommand("racine");       
       
       
        //Création et affichage des champs
       
        //Champ 1
        add(champNumber1 = new TextField(MsgTexte, 25));
        champNumber1.setEditable(true);
         champNumber1.setLocation(20,60);
        champNumber1.setForeground(couleurTexte);
             
        //Champ 2
        add(champNumber2 = new TextField(MsgTexte, 25));
        champNumber2.setEditable(true);
        champNumber2.setLocation(20,80);
        champNumber2.setForeground(couleurTexte);

        //Champ Résulat
        add(champResultat = new TextField(MsgResultat, 25));
        champResultat.setEditable(false);
        champResultat.setLocation(20,100);
        champResultat.setForeground(Color.red);
       
    }
  
   
    public void actionPerformed(ActionEvent evt) 
    {
        //On récupère les données des champs éditables
        number1 = champNumber1.getText();
        number2= champNumber2.getText();    
  
        //conversion chaine en Double puis en double
        dnumber1= Double.valueOf(number1).doubleValue();
        dnumber2= Double.valueOf(number2).doubleValue();    
       
        //On vérifie sur quel bouton on a appuyé
        if (evt.getActionCommand().equals("addi"))
            addition();
        else if (evt.getActionCommand().equals("minus"))
            soustraction();
        else if (evt.getActionCommand().equals("mult"))
            multiplication();
        else if (evt.getActionCommand().equals("div"))
            division();
        else if (evt.getActionCommand().equals("racine"))
            racine();
    }
   
   
    private void convertir()
    {
        //Fonction qui permet de convertir le résultat
        stringResultat= Double.toString(dresultat);
        champResultat.setText(stringResultat);   
    }
   
   
    private void addition()
    {  
        dresultat= dnumber1 + dnumber2;
        convertir();

    }
   
   
    private void soustraction()
    {      
        dresultat = dnumber1 - dnumber2;
        convertir();      
    }
   
   
    private void multiplication()
    {     
        dresultat = dnumber1 * dnumber2;
        convertir();      
    }
   
   
    private void division()
    {      
        //Vérification si divison par 0
        if (dnumber2==0)
            champResultat.setText("Impossible de diviser par zéro");
        else
        {
            dresultat = dnumber1 / dnumber2;
            convertir();         
        }
    }
   
   
    private void racine()
    {
        dresultat = dnumber1 * dnumber2;
        convertir();   
    }
   
   
    public void paint(Graphics g)
    {
        Image image=null;
        image=getImage(getDocumentBase( ), "maya.gif");
        g.drawImage(image, 4, 125, this);
        setBackground(couleurFond);
        g.setFont(fonteTitre);
        g.setColor(couleurTexte);
        g.drawString(titre, 80,150);
        g.setFont(fonteTexte);
        g.drawString(instr1, 80,170);
        g.drawString(instr2, 80,180);
        g.drawString(instr3, 80,190);
    }
   
}

Merci d'avance.

Cordialement,
Afficher la suite 

5 réponses

Répondre au sujet
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 22 mars 2007 à 20:26
+3
Utile
si tu mets ton layout à null, utilise la méthode setBounds pour définir la position/largeur/hauteur de tes contrôles, et lorsque tu les ajoute à ton panel, il faut spécifier le deuxième paramètre à null aussi :

tonPanel.add(tonControle, null);

Mais je te déconseille d'utiliser un layout null car tu perds tout l'intéret de java avec ses layouts (redimensionnement automatique des contrôles entre autre). Utilise un GridBagLayout, plus contraignant, mais tu gardera les avantages du layout tout en pouvant faire la mise en forme que tu veux (en te creusant un peu la tête tout de même).
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_DARKSIDIOUS
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 22 mars 2007 à 20:00
0
Utile
Salut:

Tu dois mettre le layout utilisé par ton applet à null.



public class Calculette extends Applet implements ActionListener  
{




    public void init () {



       setLayout (null);



       // ...




    }



    // ...




}




__________________________________________________________
A.B. : 
Commenter la réponse de Ombitious_Developper
iloweb 8 Messages postés dimanche 2 octobre 2005Date d'inscription 22 mars 2007 Dernière intervention - 22 mars 2007 à 20:09
0
Utile
Bonsoir et merci, mais j'avais deja essayer cela en fesant sa

    public void init()
    { 
        setLayout (null);

        //Définition des nouvelles couleurs, initialisation des polices et du texte
        couleurFond = new Color(238, 242, 247);
        couleurTexte = new Color(0, 21, 102);
        titre = new String("Calculette simple");
..... blabla....

Mais quand je mais cela, put aucun bouton ou textedit n'apparait.
Donc se n'est donc pas la bonne solutions
Commenter la réponse de iloweb
iloweb 8 Messages postés dimanche 2 octobre 2005Date d'inscription 22 mars 2007 Dernière intervention - 22 mars 2007 à 20:44
0
Utile
Merci bien sa fonctionne,

j'avais test setbounds, mais sans metre layout a null.

Merci bien, bonne soirée
Commenter la réponse de iloweb
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 22 mars 2007 à 21:31
0
Utile
Salut:

Je suis tout a fait d'accord avec DarkSidious, si les layout existents ne répondent pas à tes exigences tu peux crée ton layout personnalisé en passant par l'interface LayoutManager.




__________________________________________________________
A.B. : 



 




"Dieu nous donne des mains, mais il ne bâtit pas les ponts."
Commenter la réponse de Ombitious_Developper

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.