iloweb
Messages postés8Date d'inscriptiondimanche 2 octobre 2005StatutMembreDernière intervention22 mars 2007
-
22 mars 2007 à 19:42
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 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.
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);
//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);
}
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 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).
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 22 mars 2007 à 20:00
Salut:
Tu dois mettre le layout utilisé par ton applet à null.
public class Calculette extends Applet implements ActionListener
{
iloweb
Messages postés8Date d'inscriptiondimanche 2 octobre 2005StatutMembreDernière intervention22 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
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 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.