IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Agents de placement/Fenêtres Java Discussion :

calculatrice avec JAVA


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 154
    Par défaut calculatrice avec JAVA
    Bonsoir,

    j'essaie de faire une calculatrice avec l'interface JAVA, je me familiarise avec les Frame et les Panel !!

    j'ai pu avoir ce resultat en travaillant avec 3 panel, un CENTER, un autre WEST et un NORTH :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
    import java.awt.*;
     
    import javax.swing.border.Border;
     
    [IMG]http://rooosana.ps/Down.php?d=Pa4k[/IMG]
     
    public class CALC 
    {
    	public static void main(String[] args) 
    	{
    		Frame F = new Frame("Calculatrice de TIMA");
    		Panel P1 = new Panel();
    		Button b1 = new Button ("7");
    		Button b2 = new Button ("8");
    		Button b3 = new Button ("9");
    		Button b4 = new Button ("/");
    		Button b5 = new Button ("Rac");
    		Button b6 = new Button ("4");
    		Button b7 = new Button ("5");
    		Button b8 = new Button ("6");
    		Button b9 = new Button ("*");
    		Button b10 = new Button ("%");
    		Button b11 = new Button ("1");
    		Button b12 = new Button ("2");
    		Button b13 = new Button ("3");
    		Button b14 = new Button ("-");
    		Button b15 = new Button ("1/x");
    		Button b16 = new Button ("0");
    		Button b17 = new Button ("+/-");
    		Button b18 = new Button (",");
    		Button b19 = new Button ("+");
    		Button b20 = new Button ("=");
    		P1.add(b1);
    		P1.add(b2);
    		P1.add(b3);
    		P1.add(b4);
    		P1.add(b5);
    		P1.add(b6);
    		P1.add(b7);
    		P1.add(b8);
    		P1.add(b9);
    		P1.add(b10);
    		P1.add(b11);
    		P1.add(b12);
    		P1.add(b13);
    		P1.add(b14);
    		P1.add(b15);
    		P1.add(b16);
    		P1.add(b17);
    		P1.add(b18);
    		P1.add(b19);
    		P1.add(b20);
    		P1.setLayout(new GridLayout(4,5));
    		F.add(P1,BorderLayout.CENTER);
     
    		Panel P2 = new Panel();
    		Button b21 = new Button ("MC");
    		Button b22 = new Button ("MR");
    		Button b23 = new Button ("MS");
    		Button b24 = new Button ("M+");
    		P2.add(b21);
    		P2.add(b22);
    		P2.add(b23);
    		P2.add(b24);
    		P2.setLayout(new GridLayout(4,1));
    		F.add(P2,BorderLayout.WEST);
     
    		Panel P3 = new Panel();
    		P3.setLayout(new GridLayout(2,1));
    		TextField T = new TextField();
    		Panel P4 = new Panel();
    		P4.setLayout(new GridLayout(1,4));
    		Button b25 = new Button ("Retour arrière");
    		Button b26 = new Button ("CE");
    		Button b27 = new Button ("C");
    		P4.add(b25);
    		P4.add(b26);
    		P4.add(b27);
    		P3.add(T);
    		P3.add(P4);
    		F.add(P3,BorderLayout.NORTH);
     
     
    		F.pack();
    		F.setVisible(true);
    	}
     
     
    }
    je veux avoir un resultat comme celui la :



    alors ma question :
    comment faire pour avoir l'espace (1 : rouge) et la zone (2: noire) !?

    Merci beaucoup les amis

  2. #2
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    Salut,
    un petit coup de main

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 154
    Par défaut
    c'est ce que j'ai fait :

    j'ai crée le Panel 1 et Panel 2, et j'ai même ajouté un panel 3 avec un GridLayout de deux ligne, dans la première j'ai mis le champs textField !!

    mais ça ne donne pas mon resultat voulu !!!

    pouvez vous tester mon code svp !?
    comme ça vous verrez mieux ce que je demande

    meric beaucoup d'avance

  4. #4
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    Pour les espacements tu n'arriveras à rien avec le gridLayout.
    De plus, tu pars dans des imbrications d'imbrications... bref, ça devient illisible
    Utilise plutôt un GridBagLayout. Tu as 11 paramètres pour définir les composants à ajouter, dont l'espacement entre chaque composants.

    Voila pour toi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    import java.awt.*;
    import javax.swing.*;
     
    public class Calc{
        private GridBagConstraints gbc = new GridBagConstraints();
        private GridBagLayout layout = new GridBagLayout();
        private String[][] touches = {
            {"MC","7","8","9","/","RAC"},
            {"MR","4","5","6","*","%"},
            {"MS","1","2","3","-","1/x"},
            {"M+","0","+/-",",","+","="}};
        private Panel panel = new Panel(layout);
        private Insets insets= new Insets(1,1,1,1);
     
     
        public Calc(){
            JFrame frame = new JFrame("Calculatrice de TIMA");
     
            //Ajout des composants supérieurs
            JButton ra = new JButton ("Retour arrière");
            JButton ce = new JButton ("CE");
            JButton c = new JButton ("C");
            JTextField textField = new JTextField();
     
            this.ajouterComposant(textField,0,0,7);
            this.ajouterComposant(ra,1,1,2);
            this.ajouterComposant(ce,3,1,2);
            this.ajouterComposant(c,5,1,2);
     
            //Ajout des éléments de la grille du milieu
            for(int i=0;i<6;i++){
                for(int j=0;j<4;j++){
                     JButton boutton = new JButton (touches[j][i]);
     
                     //Espacement plus important (à droite) pour les éléments sur la première colonne
                     if(i==0) insets = insets= new Insets(1,1,1,10);
                     else insets = insets= new Insets(1,1,1,1);
     
                     this.ajouterComposant(boutton,i,j+2,1);//j+2 : parce qu'on commence à la 3èmé ligne, les 2 première étant déjà prise
     
                }
     
            }
            frame.setContentPane(panel);
            frame.pack();
            frame.setVisible(true);
     
        }
        public static void main(String[] args){
            new Calc();
        }
     
        private void ajouterComposant(Component composant, int colonne,int ligne,int width){
            gbc.gridx = colonne;
            gbc.gridy = ligne;
            gbc.gridwidth = width;//nombres de cases utilisées horizontalement
            gbc.gridheight = 1;
            gbc.insets = insets;//Ecarts entre les cases
            gbc.fill = GridBagConstraints.BOTH;//Remplir avec tous l'espace disponible
            gbc.anchor = GridBagConstraints.CENTER;//Toujours centré sur la case
            gbc.weightx=1.0f;//Politique de redimensionnement horizontal
            gbc.weighty=1.0f;//Politique de redimensionnement vertical
            layout.setConstraints(composant, gbc);//gbc = GridBagConstraints
            panel.add(composant);//Ajout au panel
        }
     
     
    }
    Les Insets servent pour les espacement (haut,gauche,bas,droite) autour de la case en pixel.

Discussions similaires

  1. meilleure base de données avec java
    Par mial dans le forum JDBC
    Réponses: 11
    Dernier message: 10/11/2010, 11h49
  2. [LDAP] recherche dans differents container LDAP avec Java
    Par touinth dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 01/07/2004, 16h06
  3. [CR][Java] imprimer un état CR avec java
    Par wassimb dans le forum SDK
    Réponses: 2
    Dernier message: 24/05/2004, 16h40
  4. Réponses: 3
    Dernier message: 27/01/2004, 16h15
  5. [JNDI] Equivalent avec Java Web Start ?
    Par cameleon2002 dans le forum Java EE
    Réponses: 8
    Dernier message: 18/09/2003, 18h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo