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 :

(toujours débutant) JButton


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Par défaut (toujours débutant) JButton
    Bonjour,
    je débute en Java depuis hier, et je lutte sur des problèmes vraiment idiots...

    J'ai réussi tant bien que mal à faire mon 1er bouton (JButton), et a l'afficher sur une fenetre simple. Seulement voilà, mon bouton prend systématiquement toute la taille de ma fenetre...

    J'ai essayé de nombreuses méthodes proposé par l'éditeur, et en particulier setSize(x,y), mais rien n'y fait...

    Pour tester, j'ai fait 2 boutton sur cette même fenetre, et un seul des 2 (c'est déjà pas mal^^) apparait discretement en haut a gauche a la bonne taille, et disparait sitot que je clique que le 2e boutton qui lui prend toute la frame.

    J'ai jetté d'un coup d'oeil aux Layout, mais j'avous ne pas avoir tout compris...

    le 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
     
    	public page1() 
    	{
    		super("page 1");		
    		WindowListener l = new WindowAdapter() 
    		{
    			public void windowClosing(WindowEvent e)
    			{
    				System.exit(0);
    			}
    		};
    		addWindowListener(l);
     
    		//JPanel pannel = new JPannel();
    		JButton b1 = new JButton("bouton 1");
    		//b1.setLayout(new GridLayout(0,1));
    		//JButton b2 = new JButton("bouton 2");
    		//b1.setSize(100, 50);
    		//b1.setAlignmentX(20);
    		//b1.setAlignmentY(10);
    		//b2.setSize(50, 20);
    		//b2.setBounds(10, 10, 100, 50);
    		//b2.setText("plop");
    		add(b1);
    		//add(b2);
     
    		setSize(300,200);
    		setVisible(true);		
    	}
    Je laisse les commentaire inutiles qui montrent dans quel sens j'ai tatonné (sans succès).

    Mes questions sont donc :

    - suis-je complétement à coté de la plaque ? est-ce un problème lié au Layout ? Pourquoi le boutton prend toute la taille de la fenetre ?

    - est-ce là le seul moyen de créer une interface sans passer par des plugins (que je ne saurais d'ailleur encore même pas installé)

    - existe t-il une class browser dans les packages JAVA ?

  2. #2
    Membre éclairé Avatar de benjiprog
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Par défaut
    Il prend toute la place car tu n'a pas de gestionnaire de mise en forme c'est ce qui dispose tes composants.
    Pour que tes boutons soient bien disposer rajoute un bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getContentPane().setLayout(new FlowLayout());
    Avec ca tu obtiendra un gestionnaire du type FlowLayout qui se chargera de disposer tes boutons par rapport au contenu de ta fenetre.

    Pour l'adapter a ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    JButton b1 = new JButton("bouton 1");
    JButton b2 = new JButton("bouton 2");
    Container contenu = getContentPane();
    contenu.setLayout(new FlowLayout());
    contenu.add(b1);     //ajout des boutons au contenu de la fenetre.
    contenu.add(b2);
    Voilà avec ca tes boutons seront automatiquement disposer dans ta fenêtre.
    Je pense que pour toi qui est débutant c'est une manière assez simple pour commencer.

  3. #3
    Membre émérite
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Par défaut
    Merci pour ta réponse.
    En effet, tes modifications me permettent d'obtenir un boutton de taille normale :p

    En revanche, je ne voudrais pas abuser de ta gentillesse, mais je me pose encore quelques questions :

    1 - j'ai pas vraiment compris ce que j'ai fait

    2 - je ne peut toujours pas modifier la taille (setSize) du boutton, ni ses coordonnées (du moins pas quand je défini mon bouton dans ma class interface)

    3 - si je rajoute dans mon main()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    		JFrame frame = new page1();
    		JButton b1 = new JButton("b1");
    		b1.setSize(70, 40);
    		frame.add(b1);
    La, il se passe un truc vachement bizar, car quand le curseur de la souris passe dans le coin en haut à gauche de ma fenetre (et seulement a ce moment la), un bouton de dimension 70x40 y apparait...

    Je me sens un peu géné de poser ce genre de question d'autant qu'il doit bien y avoir des tuto qui y répondent, mais c'est assez difficile de savoir quoi chercher quand on connais pas le jargon (genre j'ai mis un p'tit moment a réaliser que Swing était ce qu'il me fallait pour faire une interface lol)

    Quoiqu'ilo en soit, merci pour vos réponses ^^

  4. #4
    Membre expérimenté Avatar de fumiste972
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Février 2003
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Février 2003
    Messages : 228
    Par défaut
    Slt,
    juste quelques petits conseils pour commencer. Tu devrais eviter de faire des classes qui herites des JComponent (ex JFrame, JPanel, etc...) sauf si tu veux modifier certaines methodes des classes JComponent.
    Ce que tu devrais plutot faire c'est faire une classe (page1 comme tu as fait) qui s'occupe de creer toute l'interface une fois pour toute.
    Pour retailler les composant utilise la methode setPreferedSize(), ca a plus de chance de marcher.
    Pour ton bouton qui apparait montre le code de ta classe page1 pour qu'on voit si il n'y a pas d'erreurs.

  5. #5
    Membre émérite
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Par défaut
    En vrac, la totalité du 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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
     
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    /**
     * @author steph
     *
     */
    public class page1 extends JFrame
    {
     
    	/**
             * @param args
             */
     
    	public page1() 
    	{
    		super("page 1");		
    		WindowListener l = new WindowAdapter() 
    		{
    			public void windowClosing(WindowEvent e)
    			{
    				System.exit(0);
    			}
    		};
    		addWindowListener(l);
     
    		//JPanel pannel = new JPannel();
    		JButton b1 = new JButton("bouton 1");
    		Container contenu = getContentPane();
    		contenu.setLayout(new FlowLayout());
    		//b1.setLayout(new GridLayout(0,1));
    		JButton b2 = new JButton("bouton 2");
    		b1.setSize(150, 50);
    		b1.setAlignmentX(20);
    		b1.setAlignmentY(10);
    		//b2.setSize(50, 20);
    		//b2.setBounds(10, 10, 100, 50);
    		//b2.setText("plop");
    		add(b1);
    		add(b2);
     
    		setSize(300,200);
    		setVisible(true);		
    	}
     
    	public static final long serialVersionUID = 1;
     
     
    	public static void main(String[] args) 
    	{
    		// TODO Auto-generated method stub
     
    		JFrame frame = new page1();
    		JButton b1 = new JButton("b1");
     
    		//b1.setLayout(new GridLayout(0,1));
    		//b1.add(new JLabel("xxx", JLabel.CENTER));
    		b1.setSize(70, 40);
     
    		//frame.getContentPane().setLayout(new FlowLayout());
    		//frame.getContentPane().add(b1);
    		frame.add(b1);
    		//frame.show();
     
    		//frame.addWindowListener(l);
    		//frame.setSize(200, 200);
    		System.out.println("yop");
    	}
     
    }
    ps : fumiste972 ? 972 comme la martinique ?

    - - - edit - - -

    je laisse les commentaire au cas vous vouliez voir dans quoi j'ai patogé :p

  6. #6
    Membre expérimenté Avatar de fumiste972
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Février 2003
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Février 2003
    Messages : 228
    Par défaut
    Citation Envoyé par gloubi
    ps : fumiste972 ? 972 comme la martinique ?
    Oui comme la Martinique

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

Discussions similaires

  1. Les types (toujours débutant)
    Par Pov type dans le forum Débuter
    Réponses: 7
    Dernier message: 18/09/2008, 08h37
  2. équivalent de IntToStr (encore et toujours débutant)
    Par Pov type dans le forum Débuter
    Réponses: 9
    Dernier message: 17/09/2008, 13h50
  3. [Débutant] JButton et Thread
    Par ViRouF dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 30/01/2007, 09h24
  4. Réponses: 18
    Dernier message: 06/07/2006, 18h40
  5. [débutant][swing][JButton][ActionListener]
    Par cmoa59 dans le forum Composants
    Réponses: 6
    Dernier message: 25/05/2005, 15h19

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