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 :

Probleme d'interface.


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 79
    Par défaut Probleme d'interface.
    Bonjour je viens de commencer les interface graphiques en java.
    j'ai juste créer une interface avec 2 boutons.

    Le probleme est que lors de l'apparition de la fenetre mes bouton ne s'affiche pas. Je dois redimensionner ma fenetre pour voir mes boutons. (c'est n'est pas un probleme de position de bouton, mais je dois mal les appeler)

    Merci.

    voila mon code :

    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
    package IHM;
     
    import java.awt.event.*; // Pour le ActionListener
    import java.awt.*;  // Pour le container
    import javax.swing.*; 
     
    class Bouton_Menu extends JPanel  
    implements ActionListener    // interface écouteur d'événements
    {
        private JButton BoutonOk;
        private JButton BoutonKo;
        public Bouton_Menu() // constructeur de la classe ButtonPanel 
        {
            BoutonOk = new JButton("Ok");
            BoutonKo = new JButton("Quitter");
            // Insertion des boutons dans l'objet ButtonPanel 
            add(BoutonOk); 
            add(BoutonKo); 
            // Les sources d'événements sont déclarées à l'écouteur 
            BoutonOk.addActionListener(this);  
            BoutonKo.addActionListener(this);
        }
     
        public void actionPerformed(ActionEvent evt) 
           // Permet de traiter l'événement en fonction de l'objet source
        {
            if (evt.getSource() == BoutonKo)
            {
                this.setVisible(false);
            }
        } 
    } 
     
     
    class Panel_Menu extends JFrame 
    {
        public Panel_Menu() 
        {  
            setTitle("Menu Ajout");
            /** Lecture de la taille de l'écran */
            java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
            this.pack();
            /* la fenêtre prend sa taille... */
            this.setLocation(150, 150);
            setSize(500, 400); 
            setVisible(true);
            // ------------ par défaut pour le JFrame ------------
            // setLayout(new BorderLayout());
            Container c = getContentPane();
            c.add(new Bouton_Menu());
        }
    }
     
    public class Menu_Ajout extends JFrame
    {    
        public static void main(String[]telsArgs)
        {        
            //Appel de la classe Panel_Menu
            new Panel_Menu();
        }//main
    }//classe Start
    [ Sujet déplacé depuis le forum java par Viena ]
    Les Règles du Forum

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Par défaut
    tu n'a pas de layout pour ton panel?

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 79
    Par défaut
    La c'est juste un premier test je vais ensuite utliser des borderlayout.
    Mais par defaut ca devrai marcher ?

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Quelques remarques :
    • Il est fortement conseillé d'utiliser de manipuler les éléments graphiques dans le threads dédiés aux traitements graphiques (EDT = Event Dispatch Thread) en utilisant les méthodes SwingUtilities.invokeLater() et SwingUtilities.invokeAndWait()
    • Il est preférable d'ajouter les composants AVANT d'afficher la fenêtre avec setVisible(), et si ce n'est pas le cas il faut utiliser la méthode invalidate() pour que les composants soit ré-affiché...
    a++

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 79
    Par défaut
    Citation Envoyé par adiGuba
    Salut,
    • Il est preférable d'ajouter les composants AVANT d'afficher la fenêtre avec setVisible(), et si ce n'est pas le cas il faut utiliser la méthode invalidate() pour que les composants soit ré-affiché...
    a++
    Merci beaucoup pour cette chose evidente lol

    Probleme resolu ^^

  6. #6
    Membre expérimenté Avatar de dazz_x
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    269
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2006
    Messages : 269
    Par défaut
    [EDIT 2] je retire ce qui était écrit en petit 1), que je n'ose même pas répéter ici, de peur de vives moqueries méritées

    2)je te conseille plutôt ça :

    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
     class Panel_Menu extends JFrame 
    {
        public Panel_Menu() 
        {  
            setTitle("Menu Ajout");
            /** Lecture de la taille de l'écran */
            java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
            this.pack();
            /* la fenêtre prend sa taille... */
            this.setLocation(150, 150);
            setSize(500, 400); 
            setVisible(true);-------------------------|
            // ------------ par défaut pour le JFrame 
                        Container c = getContentPane();
                               c.add(new Bouton_Menu());
        }    <-------------------------------------|
    }
    c'est à dire d'appeller setVisible() après avoir ajouté les composants

    [EDIT 1] grillé as the basic merguez

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FEDORA]Gros probleme d'interface..
    Par bulmam dans le forum RedHat / CentOS / Fedora
    Réponses: 4
    Dernier message: 15/08/2007, 18h22
  2. Probleme accès à interface web d'administration
    Par theAlex dans le forum JOnAS
    Réponses: 1
    Dernier message: 01/04/2007, 12h20
  3. [vb.net]probleme d'interface graphique
    Par os_rasta dans le forum Visual Studio
    Réponses: 4
    Dernier message: 09/11/2006, 08h47
  4. [Kylix] Fedora 4 / Kylix3 Problem d'interface.
    Par bozoeus dans le forum EDI
    Réponses: 1
    Dernier message: 11/08/2005, 19h27
  5. Problème Visu Interface Graphique
    Par Bweb dans le forum Applications et environnements graphiques
    Réponses: 12
    Dernier message: 16/08/2004, 15h52

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