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

 Java Discussion :

Ajout d'un bouton simple :(


Sujet :

Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Par défaut Ajout d'un bouton simple :(
    Bonjour,

    un peu honte de demander ça mais je n'y arrive pas lol. Voici mon programme, cette fonction doit m'ouvrir une fenetre avec un JLabel et un Jbutton en dessous :

    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
    	public static void erreurSaisie(){
     
    		JFrame Eframe = new JFrame("Erreur de saisie");
    		Eframe.setSize(new Dimension(500,200));			
    		JPanel pan = new JPanel();
    		JLabel message = new JLabel("Erreur dans la saisie de la date : Date de début > Date de fin");
    		message.setFont(new java.awt.Font("Dialog", 1, 12));
    		FlowLayout bl = new FlowLayout(FlowLayout.CENTER);
    		pan.setLayout(bl);
    		pan.add(message);
     
    		JPanel pan2 = new JPanel();
    		JButton ok = new JButton("Ok");
    		pan2.setLayout(bl);
    		pan2.add(ok);
     
    		Eframe.setContentPane(pan);
    		Eframe.setContentPane(pan2);
    		Eframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		Eframe.setVisible(true);
    	}
    Mais voila donc bien sur ça ne marche pas...

    Merci

  2. #2
    Membre Expert

    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2009
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2009
    Messages : 553
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Eframe.setContentPane(pan);
    Eframe.setContentPane(pan2);
    Ca, déjà, c'est pas bon. En faisant cela, tu remplaces 'pan' par 'pan2'. Cette fonction n'ajoute pas les éléments, elle les remplace.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Par défaut
    Oui j'ai vu que ça remplaçait mais je ne sais pas comment faire pour mettre à la suite...

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    c'est add() pour rajouter des éléments, et tes deux panels ne servent à rien.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Par défaut
    Ok merci mais pour pouvoir tout centrer il faut que j'utilise le flowlayout qui s'applique sur le panel. Il y a un autre moyen sans passer par panel ?

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    dans ton code, le layout set à rien non plus, puisque tu n'a qu'un seul élément dans le panel en question. C'est sur le contentpane que tu dois appliquer ton layout.

  7. #7
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 100
    Par défaut
    pourquoi tu ne fais pas ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    JPanel global = new JPanel();
    global.setLayout(tonlayout);
    global.add(pan);
    global.add(pan2);
    Eframe.add(global );

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Par défaut
    Parce que ça les ajoute à la suite et pas l'un en dessous de l'autre

  9. #9
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    le flowlayout n'ajoute pas l'un en dessous de l'autre!

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Par défaut
    Oui il permet juste de centrer les éléments au milieu de la fenetre

  11. #11
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 100
    Par défaut
    Il existe de multiple solutions à ce problème :
    Déjà lire ça :
    http://java.sun.com/docs/books/tutor...ut/border.html

    le Jsplitpane c'est pas mal pour faire ça aussi : http://java.sun.com/docs/books/tutor...splitpane.html

    mais bon un simple BorderLayout en pagestart et end ça passe.

    Sinon le top mais plus long à mettre en oeuvre le GridBagLayout.

    avec un oeil sur la javadoc des Insets et hop

    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
    GridBagConstraints gbc = new GridBagConstraints();
     
    		gbc.gridx = gbc.gridy = 0;
    		gbc.gridheight = gbc.gridwidth = 1;
    		gbc.anchor = GridBagConstraints.BASELINE_LEADING;
    		gbc.insets = new Insets(0, 0, 0, 0);
     
    		frame.add(tonjlabel, gbc);
     
    		gbc.gridx = 0;
    		gbc.gridy = 1;
    		gbc.gridheight = gbc.gridwidth = 1;
    		gbc.anchor = GridBagConstraints.BASELINE_LEADING;
    		gbc.insets = new Insets(130, 0, 0, 0);
     
    		frame.add(tonbouton, gbc);

Discussions similaires

  1. Ajouter dynamiquement un bouton
    Par toure32 dans le forum Delphi
    Réponses: 2
    Dernier message: 17/04/2007, 00h40
  2. [JTable] ajout d'un bouton dans une colonne
    Par Blast dans le forum Composants
    Réponses: 7
    Dernier message: 15/03/2007, 18h33
  3. Réponses: 11
    Dernier message: 28/01/2006, 21h52
  4. [Débutant] [Applet] ajout d'un bouton
    Par Seth77 dans le forum Applets
    Réponses: 6
    Dernier message: 05/12/2005, 14h23

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