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

AWT/Swing Java Discussion :

interface graphique menu


Sujet :

AWT/Swing Java

  1. #1
    Membre éclairé Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut interface graphique menu
    Bonjour !

    J'ai réalisé une interface graphique avec un menu tout en haut dans le container principal. ( fichier edition etc ... )

    Je voudrai maintenant mettre un autre menu en dessous de celui ci qui contiendrai toute les icones relatives à l'ouverture d'un fichier, l'enregistrement d'un fichier etc ...

    Probleme :
    Or lorsque je l'ajoute il se superpose avec l'ancien, et pas moyen de le deplacer avec setBounds ou setLocation ...

    Comment faire ?

    Autre Problème :

    - Quel méthode dois-je utiliser pour mettre en fond d'un container une image ?

  2. #2
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Ton second menu est plutôt une barre d'outils JToolBar
    Pour la seconde question, c'est dans la FAG GUI Java

  3. #3
    Membre éclairé Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Voici mon code !

    j'essaye d'ajouter une barre d'icone en dessous de la barre de menu. Pas moyen de lancer le le programme ...

    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
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    package agl;
     
    /*
     * Agl.java
     *
     * Created on 11 janvier 2007, 21:25
     *
     * To change this template, choose Tools | Template Manager
     * and open the template in the editor.
     */
     
    /**
     *
     * @author keub
     */
     
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.FlowLayout;
    import java.awt.Rectangle;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JToolBar;
    import javax.swing.border.EtchedBorder;
     
    public class Agl extends JFrame implements ActionListener{
        private JPanel container = null;//Déclaration de l’objet JPanel
        private FlowLayout layout = null ;//Déclaration de notre layout
     
    //Composants de l'agl
        private JButton DDD = null ;//le bouton dictionnaire de données
     
        private JButton MCD = null ;//le bouton MCD
     
        private JButton MLD = null ;//le bouton MLD
     
        private JButton essai = null ;//le bouton essai du container 2
    //Composants du menu
        private JMenuBar menuBar = null ; //la barre de menu
        private JMenu menu1 = null ;// le menu1 qui sera en fait le menu " fichier "
        private JMenuItem nouveau = null ;//item " nouveau " qui sera placé dans fichier
        private JMenuItem enregistrer = null;//item " enregistrer " qui sera placé dans fichier
        private JMenuItem quitter = null ;//item " quitter " qui sera placé dans fichier
        private JMenu menu2 = null ;// le menu2 qui sera le menu " ? "
        private JMenuItem aPropos = null ;//item qui sera placé dans "?"
        private JMenuItem IconeNew = null ;
        private JToolBar Icone = null;//bar icone
        private int largeur;
        private int hauteur;
     
    // le constructeur de l'agl
        public Agl(){
            super();
     
            build();// apel de la méthode build definit ci dessous
        }
     
        public static void main(String[] args){
            Agl gui = new Agl();// on crée gui qui est du type Agl que l'on construit grace au constructeur
            gui.setVisible(true);// on laffiche
        }
    // c ici que l'on construit la fenetre
        private void build(){
            menuBar = new JMenuBar();// on crée une barre de menu en haut de la fenetre
     
     
    // c'est elle qui contiendra "fichier" et " ? " qui sont les menus
            menu1 = new JMenu("Fichier" ) ;// on crée le premier menu "fichier"
     
            nouveau = new JMenuItem("Nouveau" );// on instance l'item nouveau il sera appelé " Nouveau "
            nouveau.addActionListener(this);// on lui definit une action qui sera definit dans une méthode action listener ci dessous ...
            menu1.add(nouveau) ;
     
     
            enregistrer = new JMenuItem("Enregistrer" );
            enregistrer.addActionListener(this);// on lui definit une action qui sera definit dans une méthode action listener ci dessous ...
            menu1.add(enregistrer) ;
     
    //on fait de même avec l'item "quitter"
            quitter = new JMenuItem("Quitter" );
            quitter.addActionListener(this);
            menu1.add(quitter) ;
    // on ajoute ensuite le menu1 a la barre de menu
            menuBar.add(menu1) ;
    // maintenant on s'occupe du deuxieme menu "menu2'
            menu2 = new JMenu("?" ) ;
     
            aPropos = new JMenuItem("A propos" ) ;
            aPropos.addActionListener(this) ;
            menu2.add(aPropos) ;
     
            menuBar.add(menu2) ;
            this.setJMenuBar(menuBar);// ajout de la barre de menu a la JFRAME
            //bar icone :
     
            Icone= new JToolBar();
            IconeNew.setTooltipText("Nouveau   Ctrl+N" );
            IconeNew.setIcon(new ImageIcon("" ));
            Icone.add(IconeNew);
            Icone.setFloatable(false);
            this.add(Icone);
     
    //maintenant on va definir une taille a la fenetre un titre etc ...
            this.setTitle("Agl - Projet Seconde Année" ); //On donne un titre à l’application
            Dimension tailleEcran = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
            hauteur = (int)tailleEcran.getHeight();
            largeur = (int)tailleEcran.getWidth();
            this.setSize(largeur,hauteur-60); //On donne une taille à notre fenêtre
            this.setLocationRelativeTo(null); //On centre la fenêtre sur l’écran
            this.setResizable(true) ; //On autorise la redimensionnement de l’écran
            this.setContentPane(getContainer()) ;//On lui dit de mettre le panel en fond ( le contenu )
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //On dit à l’application de se fermer lors du clic sur la croix
        }
    // on va definir le contenu de la fenetre
        private JPanel getContainer(){
            container = new JPanel();
            JPanel containerButton = new JPanel() ;//On crée notre objet
            JPanel FS = new JPanel() ;//On crée notre objet
            container.setLayout(null);// On applique le layout
            containerButton.setLayout(null);// On applique le layout
            containerButton.setBackground(Color.LIGHT_GRAY);//couleur de fond : gris ...
            containerButton.setBorder(new EtchedBorder(5,Color.black,Color.white));
            containerButton.setBounds(0,50,280,hauteur-110);
            FS.setLayout(null);// On applique le layout
            FS.setBackground(Color.white);//couleur de fond
            FS.setBorder(new EtchedBorder(50,Color.black,Color.white));
            FS.setBounds(280,50,largeur-280,hauteur-110);
            container.add(containerButton);
            container.add(FS);
    //on ajoute les trois boutons
            DDD = new JButton("Dictionnaire De Données" );// instanciation du boutton
            DDD.setForeground(Color.WHITE);
            DDD.setBackground(Color.black);
            DDD.setBounds(10,10,250,25);
            DDD.addActionListener(this) ; // écouteur d'évemenment
            containerButton.add(DDD);// On l'ajoute au conteneur
     
            MCD = new JButton("Modèle Conceptuel De Données" );
            MCD.setForeground(Color.WHITE);
            MCD.setBackground(Color.black);
            MCD.setBounds(10,110,250,25);
            MCD.addActionListener(this) ;
            containerButton.add(MCD);
     
            MLD = new JButton("Modèle Logique De Données" );
            MLD.setForeground(Color.WHITE);
            MLD.setBackground(Color.black);
            MLD.setBounds(10,210,250,25);
            MLD.addActionListener(this) ;
            containerButton.add(MLD);
     
     
            return container ;
        }
     
     
    //les actions a faire lorsque l'on clique sur les boutton
        public void actionPerformed(ActionEvent e){
            if(e.getSource() == DDD){
    // lorsque l'on clique sur Dictionnaire de données
     
     
            }else if(e.getSource() == quitter){//sur quitter
                System.exit(0);//Exit ...
            }else if(e.getSource() == aPropos){//Lorsque l'on clique sur a propos dans le menu "?"
                JOptionPane.showMessageDialog(null,"Ce programme a été développé par ..." );
            }
        }
    }
    Quest ce qui ne fonctionne pas ? et ou doit se trouver l'image ? ( a coté du .java ? )

  4. #4
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 109
    Par défaut
    Je n'ai pas testé le code mais je crois que ca doit etre ca :

    a un endroit tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Icone= new JToolBar();
            IconeNew.setTooltipText("Nouveau   Ctrl+N" );
            IconeNew.setIcon(new ImageIcon("" ));
            Icone.add(IconeNew);
            Icone.setFloatable(false);
            this.add(Icone);

    mais ensuite tu remplace le conteneur de ta fenetre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     this.setContentPane(getContainer()) ;//On lui dit de mettre le panel en fond ( le contenu )
    ca me parait normal que la toolbar n'apparaise plus.

Discussions similaires

  1. [Turbo Pascal] Interface graphique et menu
    Par discipolat dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 07/02/2011, 13h05
  2. Réponses: 11
    Dernier message: 30/11/2010, 01h17
  3. Application multiplateforme avec interface graphique
    Par TNorth dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 31/01/2004, 18h55
  4. [Kylix] Interface graphique pour lognes de commande linux
    Par lecharcutierdelinux dans le forum EDI
    Réponses: 6
    Dernier message: 29/08/2003, 10h20
  5. plugin interface graphique
    Par jocelyn dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 13/08/2003, 09h49

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