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 :

Gestion des JPanel-Débutant-


Sujet :

AWT/Swing Java

  1. #1
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut Gestion des JPanel-Débutant-
    Bonjour a tous,

    Alors voila ma question est toutes simple:
    Comment gerer plusieurs JPanel ds une meme JFrame?
    Par exemple:Mettre un JPanel ds un autre JPanel(etc)...

    Je ne suis qu'un debutant et cette question est tres importante pour moi.

    Merci de votre aide.Slt.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Un JPanel est à la fois un conteneur et à la fois un composant, comme la plupart des classes de SWING : un container est un composant pouvant contenir des composants. Un JPanel peut donc se comporter lui-même comme n'importe quel composant, comme un JButton ou un JLabel par exemple. Donc pour mettre des JPanel dans des JPanel, pas de différence avec les autres composants.

    Autrement dit, pour mettre un JPanel dans un JPanel, on utilise la méthode add(), et son emplacement et sa taille sont gérés comme n'importe quel autre composant, de préférence avec un LayoutManager. Il y une petite différence tout de même avec beaucoup de composants : la plupart des composants, comme un JLabel ou JButton, ont une taille déterminée, qui dépend du texte (et de l'image) qui y sont affichés (pour d'autres composants, comme le JSlider, la taille du curseur et de la glissière sont également connues). Si le JPanel (celui qui est dans l'autre) à lui même des composants à l'intérieur, agencés par un LayoutManager, sa taille pourra être déterminée. Mais s'il est vide, comme par exemple, un JPanel qui sert, à l'instar d'un Canvas, pour dessiner par la méthode paint(Graphics), il n'aura pas de taille : il sera nécessaire de l'indiquer toi-même, par la méthode setPreferredSize() au moins, (voir aussi setMaximumSize() et setMinimumSize()) pour que le LayoutManager du JPanel qui le contient soit capable de l'agencer correctement ; cette taille devant être évaluée en fonction de ce que paint(Graphics) dessine.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut
    Ok

    Merci pour ta reponse tres-complete.

    Maintenant voila ce qui me pose probleme:
    Je voudrais realiser une calculette comme celle la:
    Nom : 396562.png
Affichages : 724
Taille : 11,7 Ko

    Je pense qu'elle est composee de 3 JPanel:
    1*)JPanel1=0,1,2...9,"."et "=".
    2*)JPanel2=les operations.
    3*)JPanel3=l'affichage des saisis,et resultat.
    Mais voila qd je veux JP1 et JP2 se place a coter comme dans l'image je ni arrive pas comment faire ?
    Voici 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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    import java.awt.BorderLayout;
    import java.awt.GridLayout;
     
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
     
    public class TP_calc_main extends JFrame{
     
    	TP_calc_01 pan = new TP_calc_01();
     
    	public static void main(String[] args) {
    		//Appel de la fenetre
    		new TP_calc_main();
    	}
     
    	   //Creation-Apparence de la fenetre
    		public TP_calc_main(){
     
    		this.setTitle("Calculette");//nom
    		this.setSize(500,500);//taille
    		this.setLocationRelativeTo(null);//positionnemt de la fenetre sur l'ecran.
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//definit qd le programme s'arrete
    		this.setVisible(true);//rendre visible la fenetre
    		tableau01();
    		//tableau02();
     
    		}
     
    		JPanel pan1_t01 = new JPanel();
     
     
    		private void tableau01(){
    		//Placement des bouttons
    		//Bouttons chiffres
    		//def
    		GridLayout gl1 = new GridLayout();
    		gl1.setColumns(3);//def du nombre de colonne
    		gl1.setRows(4);//def du type de ligne
    		this.setLayout(gl1);
    		gl1.setHgap(5); //Cinq pixels d'espace entre les colonnes (H comme Horizontal)
    		gl1.setVgap(5); //Cinq pixels d'espace entre les lignes (V comme Vertical) 
    		//affichage tableau-chiffre
    		this.getContentPane().add(new JButton("1"));
    		this.getContentPane().add(new JButton("2"));
    		this.getContentPane().add(new JButton("3"));
    		this.getContentPane().add(new JButton("4"));
    		this.getContentPane().add(new JButton("5"));
    		this.getContentPane().add(new JButton("6"));
    		this.getContentPane().add(new JButton("7"));
    		this.getContentPane().add(new JButton("8"));
    		this.getContentPane().add(new JButton("9"));
    		this.getContentPane().add(new JButton(","));
    		this.getContentPane().add(new JButton("0"));
    		this.getContentPane().add(new JButton("="));
    		}
     
    		private void tableau02(){
    		//afichage opperation 
    		//Instanciation d'un objet JPanel
    		GridLayout gl2 = new GridLayout();
    		gl2.setColumns(1);
    		gl2.setRows(5);
    		this.setLayout(gl2);
    		gl2.setHgap(10);
    		gl2.setVgap(5);
     
    		this.getContentPane().add(new JButton("C"));
    		this.getContentPane().add(new JButton("+"));
    		this.getContentPane().add(new JButton("-"));
    		this.getContentPane().add(new JButton("*"));
    		this.getContentPane().add(new JButton("/"));
    		//Placement des boutons operation	
    	}
     
     
    }

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Tu peux éventuellement utiliser un BorderLayout. Il s'agit d'un Layout Manager qui a 5 emplacements de base, disposé comme ça :

    Nom : BorderLayout.png
Affichages : 714
Taille : 18,3 Ko.

    Exemple de principe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    JPanel principal = new JPanel();
    principal.setLayoutManager(new BorderLayout());
     
    JPanel jpanel1 = new JPanel();
    principal.add( jpanel1, BorderLayout.NORTH ); // pour placer la partie affichage
     
    JPanel jpanel2 = new JPanel();
    princpal.add(jpanel2, BorderLayout.CENTER ); // pour la partie clavier numérique
     
    JPanel jpanel3 = new JPanel();
    principâl.add(jpanel3, BorderLayout.EAST ); // pour la partie clavier fonction
    pour gérer les espacements entre les différents panel, tu pourrais utiliser des borders de type empty.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut
    Merci

    Mais ma principale difficulte est celle ci:
    Comment signifier a mon nouveau JPanel qu'il contient un tableau specifique?(en outre celui que j'ai ecris).

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Quand tu écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.getContentPane().add(new JButton("1"));
    Tu ajoutes le bouton directement dans le panel de la frame. Si tu veux faire un panel à part, avec les boutons du clavier numérique, il faut ajouter les boutons dans ce panel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    JPanel panel = new JPanel();
     
    frame.getContentPane().add(panel); // on met panel dans le panel standard de la frame (on pourrait faire qu'il le remplace aussi, mais personnellement je préfère toujours faire un panel intermédiaire supplémentaire, plutôt que de modifier celui de la frame).
     
    panel.setLayoutManager(new BorderLayout()); // comme indiqué dans mon précédent post
     
    JPanel panel1 = new JPanel(); // on créé un autre panel, spécifique pour le clavier numérique
    panel.add(panel1, BorderLayout.CENTER);
     
    panel1.setLayout(new GridLayout(0,4,3,3)); // un grille de 4 colonnes, avec un espacement de 3 pixels
     
    panel1.add(new JButton("1"); // on ajoute le bouton dans le panel
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut
    AHAHA!poste en mm temps

  8. #8
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut
    Bon si j'ai bien compris je resume le resonemt:

    1-On cree un nouveau panel appele "panel" qd on ajoute au panel par defaut(car tu preferes ne pas modifier ce dernier)
    2-On cree un nouveau pane appele "panel1" qu'on ajoute au "panel".
    >>>C'est dans ce "panel1"qu'est le tableau
    3-on cree le tableau en l'ajoutant ds le "panel1"
    Ce qui signifie que pour le moment j'ai 3panels differents dont 2"vides"(si je peux dire) et qui se presente comme ca:
    "panel1"->appartient a->"panel"->apparient a->"panel par defaut"
    Rem:
    "panel" servira a contenir encore 2 autres panel(si on suit l'exemple de la calculatrice).

    Me suis-je bien exprime?Ai-je bien compris?

    De plus existerait il en JAVA une sorte de "resume general" des declarations les plus importantes?

    Encore une foi merci je test tt de suite!

  9. #9
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Pif_Paf_Pouf Voir le message

    Me suis-je bien exprime?Ai-je bien compris?
    Oui, c'est exactement ça. Pour le panel dans le contentPane, au lieu de remplacer le contentPane, c'est vraiment une préférence personnelle : à toi de voir (simple le contentPane n'est pas un JPanel, mais un LayeredPane, qui a des propriétés particulières, d'où la raison de ma préférence...). Ah, puis j'ai utilisé le nom panel1, pour l'exemple, mais adpates ça pour avoir des noms qui veulent dire quelque chose, comme panelClavierNumerique par exemple...

    Citation Envoyé par Pif_Paf_Pouf Voir le message
    De plus existerait il en JAVA une sorte de "resume general" des declarations les plus importantes?
    La j'avoue ne pas comprendre de quoi tu parles : qu'entends-tu par "déclarations" ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  10. #10
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut
    Bien merci grace a toi tt fonctionne a merveille
    Un grd merci

    Cependant 2 petites questions en passant:
    1-PK tt s'affiche correctement qu'une foi que j'ai redimensionne ma fenetre et ceux que ce soit pour la rendre plus petite ou plus grande?
    2-Peut-on modifier la taille des boutons?
    (3 un peu HS-As tu une idee pour afficher la saisi clavier ds une Panel,peut etre une methode par defaut qui le fait?Mais bon la je reconnais n'avoir pas fait de recherche)

    Sur ceux un grd merci et voici 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
    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
    import java.awt.BorderLayout;
    import java.awt.GridLayout;
     
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
     
     
    public class TP_calc_Fenetre extends JFrame {
     
    	//Creation du JPanel qui contiendra tt les autre=>le Jpanel par defaut ne sera pas supprime
    	JPanel pan =new JPanel();
     
     
    	public TP_calc_Fenetre(){
    	    this.setTitle("TP-Calculette");
    	    this.setSize(300, 450);
    	    this.setLocationRelativeTo(null);
    	    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);             
    	    this.setVisible(true);	
    	    getContentPane().add(pan);//ajout du JPanel pour le rendre visible
    	    tableau01();
    	    tableau02();
    	  }
     
    	//Pour les chiffres
    	private void tableau01(){
     
    		//Creation d'un nouveau JPanel pour les chiffres
    		JPanel pan_t01= new JPanel();
    		pan.add(pan_t01, BorderLayout.CENTER);//ajout de ce JPanel
     
    		//Ajout des boutons ss forme de tableau
    		pan_t01.setLayout(new GridLayout(4,3,5,5));//ds l'ordre (ligne,colonne,espacement de 5px(x;y)
    		pan_t01.add(new JButton("1"));
    		pan_t01.add(new JButton("2"));
    		pan_t01.add(new JButton("3"));
    		pan_t01.add(new JButton("4"));
    		pan_t01.add(new JButton("5"));
    		pan_t01.add(new JButton("6"));
    		pan_t01.add(new JButton("7"));
    		pan_t01.add(new JButton("8"));
    		pan_t01.add(new JButton("9"));
    		pan_t01.add(new JButton(","));
    		pan_t01.add(new JButton("0"));
    		pan_t01.add(new JButton("="));			
     
    	}
     
    	//Pour les Operations
    	private void tableau02(){
    		//Creation d'un nouveau JPanel pour les Operations
    		JPanel pan_t02= new JPanel();
    		pan.add(pan_t02, BorderLayout.WEST);//ajout de ce JPanel
     
    		//Ajout des boutons ss forme de tableau
    		pan_t02.setLayout(new GridLayout(5,1,15,5));//ds l'ordre (ligne,colonne,espacement de 5px(x;y)
    		pan_t02.add(new JButton("C"));
    		pan_t02.add(new JButton("+"));
    		pan_t02.add(new JButton("-"));
    		pan_t02.add(new JButton("*"));
    		pan_t02.add(new JButton("/"));
    	}
     
    }
    Ensuite il faut appeler ds une methode main.

  11. #11
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Le problème d'affichage vient du faire que tu affiches la frame (en rouge) avant de la remplir (en orange) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    this.setTitle("TP-Calculette");
    	    this.setSize(300, 450);
    	    this.setLocationRelativeTo(null);
    	    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);             
    	    this.setVisible(true);	
    	    getContentPane().add(pan);//ajout du JPanel pour le rendre visible
    	    tableau01();
    	    tableau02();
    Le setVisible(true) va afficher la fenêtre telle qu'elle est au moment de l'appel. Ensuite le remplissage fera tout au plus un repaint, alors qu'il faudrait faire un revalidate() pour forcer les layout manager à comprendre que quelque chose à changer au niveau contenu et qu'il faut recalculer les tailles et emplacements de tous les composants à l'intérieur du panel. Ce que fait une redimensionnement automatiquement puisqu'il est nécessaire de recalculer toutes les tailles et emplacements en fonction de la nouvelle taille de la fenêtre.

    Le mieux, comme principe de base :

    • préparer tout le contenu de la fenêtre (donc des panels et de leurs sous-panels), avant d'afficher la fenêtre
    • s'il faut changer le contenu après l'affichage de la fenêtre, faire un revalidate après ce changement pour prévenir le panel que son contenu a changé
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  12. #12
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut
    ok super un grd merci a toi!

  13. #13
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Pour la taille d'un JButton, comme pour tout composant SWING, il y en a trois + une en fait :

    • minimumSize : la taille la plus petite nécessaire pour le composant
    • preferredSize : la taille la mieux adapté pour le composant
    • maximumSize : la taille la plus grande utile pour le bouton
    • size : la taille réelle affichée, gérée par le Layout Manager (à ne pas toucher donc, en laissant faire le layout manager)


    Les composants SWING, tels que les JButton ou JLabel, ont une taille préferentielle qui est déterminée automatiquement en fonction du texte affiché (et accessoirement de l'image) et de la police utilisée (et son style) : mais tu peux forcer toi même la taille que tu veux. J'ai jamais essayé je t'avouerais, mais je pense qu'un button.setPreferedSize(new Dimension( 100, 100 ) ); devrait fonctionner.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  14. #14
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Pour la question 3, il va falloir que tu implémentes ça toi-même : ce n'est pas très compliqué. Il suffit de savoir gérer ce qu'il faut afficher dans une chaîne de caractères. Et d'afficher cette chaîne de caractères.
    Selon tes besoins, tu peux commencer par utiliser un JLabel, ce composant étant fait pour afficher du texte (avec quelques possibilités de stylage). Ensuite, tu peux toujours utiliser un Canvas, et dessiner directement le texte dans le contexte graphique ce qui te permettra d'avoir une plus grande liberté dans l'affichage, pour ressembler à une calculatrice (bien qu'on puisse faire pas mal de chose avec des JLabel bien layoutés entre eux), mais ce sera un peu plus compliqué, surtout si tu es débutant.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

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

Discussions similaires

  1. Gestion des JPanel dans le GUI Builder de NetBeans
    Par kimjoa dans le forum Débuter
    Réponses: 2
    Dernier message: 23/07/2010, 02h19
  2. Gestion des fenetres - Débutant
    Par jlvalentin dans le forum Windows Forms
    Réponses: 4
    Dernier message: 20/08/2009, 10h37
  3. [DB400][Débutant]comprendre la gestion des processus actif
    Par horalass dans le forum Autres SGBD
    Réponses: 8
    Dernier message: 12/12/2006, 09h26
  4. Débutant: Gestion des références
    Par todobene dans le forum Langage
    Réponses: 2
    Dernier message: 07/06/2006, 07h32
  5. Débutant : Pb gestion des chaines...
    Par SebRs dans le forum C++
    Réponses: 3
    Dernier message: 29/03/2006, 15h13

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