Probléme Java sur SetLocation(x,y);

Résolu
iloweb Messages postés 8 Date d'inscription dimanche 2 octobre 2005 Statut Membre Dernière intervention 22 mars 2007 - 22 mars 2007 à 19:42
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 - 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,

5 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
22 mars 2007 à 20:26
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).
3
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
22 mars 2007 à 20:00
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. : 
0
iloweb Messages postés 8 Date d'inscription dimanche 2 octobre 2005 Statut Membre Dernière intervention 22 mars 2007
22 mars 2007 à 20:09
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
0
iloweb Messages postés 8 Date d'inscription dimanche 2 octobre 2005 Statut Membre Dernière intervention 22 mars 2007
22 mars 2007 à 20:44
Merci bien sa fonctionne,

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

Merci bien, bonne soirée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
22 mars 2007 à 21:31
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."
0