Gestion des evenements JAva

Fermé
Gouled - 16 sept. 2012 à 10:58
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 16 sept. 2012 à 12:53
Bonjour,

je suis un etudiant et je m entraîne sur la gestion d évènement (Layout Manager) pour faire une calculatrice, mais je n arrive pas a contrôler les positions de mes elements.
lorsque j utilise le BoderLayout sur un element, les autres elements disparait.

par exemple je veux avoir dans la partie a gauche de ma fenetre tout les chiffres et a droit les opérations et au Nord le JLabel (ecran) et enfin le sud certain element comme racine carre...etc , mais tout en temps.

aidez moi a gérer les emplacements de mes éléments (juste ça).



A voir également:

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
16 sept. 2012 à 12:53
Attention aux confusions, le Layout Manager ne sert pas à la gestion des évènements, mais au positionnements des composants graphiques relativement les uns aux autres.

Il aurait été intéressant de voir ce que tu avais fait pour savoir d'où venait ton problème, mais dans ton cas il te faut rajouter des JPanel qui contiendront d'autres Layout, par exemple des GridLayout. Cependant je suis sûr qu'on gagnerai en esthétique si on supprimait totalement le BorderLayout pour le remplacer par un seul grand GridLayout.

Exemple d'emplacements :

import java.awt.BorderLayout;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;

public class Test1
{
public static void main(String...args)
{                
    JFrame frame = new JFrame();
    
    JTextArea resultat = new JTextArea("-1234.56789");
    resultat.setEditable(false);
    frame.add(resultat,BorderLayout.NORTH);
    
    JPanel chiffres = new JPanel();
    chiffres.setLayout(new GridLayout(4,3));
    for (char c : "7894561230".toCharArray())
        chiffres.add(new JButton(String.valueOf(c)));
    frame.add(chiffres,BorderLayout.WEST);

    JPanel operateurs = new JPanel();
    operateurs.setLayout(new GridLayout(3,2));
    for (char c : "x/+-.=".toCharArray())
        operateurs.add(new JButton(String.valueOf(c)));
    frame.add(operateurs,BorderLayout.EAST);
    
    JPanel operateurs2 = new JPanel();
    operateurs2.setLayout(new GridLayout(1,4));
    for (char c : "%^\u221a\u03c0".toCharArray())
        operateurs2.add(new JButton(String.valueOf(c)));
    frame.add(operateurs2,BorderLayout.SOUTH);
        
    frame.pack();
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
0