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 :

mise en forme


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut mise en forme
    BOnjour,
    j'ai créer une fenêtre en java avec un onglet.
    Dans celle ci se trouve 2 panneau :
    J'en ai gérer un avec un gridbaglayout pour placer mes composant a ma convenance.
    ce que je n'arrive pas à faire c'est :
    mettre mes panneau à la taille de ma fenêtre, qu'il soit disposer l'un au dessous de l'autre et que mon bouton ajouter soit plus à droiter de mes textfield
    Je voudrais que la fenpetre se redimensionne corectement avec ce qu'il y a dedans.

    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
    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
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
     
    import java.awt.*;
    //utilisation de la bibliothèque graphique
    import javax.swing.*;
    //utilisation de la bibliothèque graphique
    import javax.swing.event.*;
    //utilisation de la programmation événementielle
     
    //class Etiquette
    class Etiquette extends JLabel
    {
    	public Etiquette(String titre)
    	{
    		super(titre);
    	}
    	public Etiquette(String titre, Container c)
    	{
    		this(titre);
    		c.add(this);
    	}
    }//Etiquette
     
    //classe Entrée
    class Entree extends JTextField
    {
    	public Entree(String message)
    	{
    		super(message,15);
    	}
    	public Entree(String message, Container c)
    	{
    		this(message);
    		c.add(this);
    	}
    	/*public String contenu()
    	{ 
    		return this.getText(); 
    	}*/
    }//Entree
     
    //classe Sortie
    class Sortie extends JTextField
    {
    	public Sortie(String message)
    	{
    		super(message,15);
    		setEditable(false);
    	}
    	public Sortie(String message, Container c)
    	{
    		this(message);
    		c.add(this);
    	}
    	/*public void afficher(String texte)
    	{ 
    		this.setText(texte); 
    	}*/
    }//Sortie
     
    //classe Bouton
    class Bouton extends JButton
    {
    	public Bouton(String libelle)
    	{
    		super(libelle);
    		setBackground(Color.gray);
    	}
    	public Bouton(String libelle, Container c)
    	{
    		this(libelle);
    		c.add(this);
    	}
    }//Bouton
     
    class Onglet extends JTabbedPane{
    	public Onglet()
    	{
    		super();
    	}
    	public void ajouteOnglet(String nom, JPanel p)
    	{
    	    this.addTab(nom, p);
    	}
    }
     
    //classe Table
    class Table extends JTable
    {
    	public Table()
    	{
    		super();
    	}
    }//Bouton
     
    class Panneau extends JPanel
    {
    	public Panneau()
    	{
    		super();
    	}
    	public Panneau(String titre)
    	{
    		super();
    		this.setBorder(BorderFactory.createTitledBorder(titre));
    	}
    }
     
    //classe Panneau
    class PanneauOption extends JPanel
    {
    	//déclaration de tous les composants utiliser pour ce panneau
    	Etiquette etiquetteCodeOption = new Etiquette("Code : ");
    	Etiquette etiquetteLibOption = new Etiquette("Libellé :");
    	Entree entreeCodeOption =  new Entree("");
    	Entree entreeLibOption =  new Entree("");
    	Bouton ajouter = new Bouton("ajouter");
    	Bouton suppr;
    	Table t = new Table();
    	Panneau p_edit = new Panneau("Edition des options");
    	Panneau p_tab = new Panneau("Liste des options");
    	private  void buildConstraints(GridBagConstraints gbc, int gx, int gy, int gw, int gh, int wx, int wy){
            gbc.gridx = gx;
            gbc.gridy = gy;
            gbc.gridwidth = gw;
            gbc.gridheight = gh;
            gbc.weightx = wx;
            gbc.weighty = wy;           
        }
    	public Panneau PanneauEditOption()
    	{
    		p_edit.setLayout(new GridBagLayout());
    		GridBagConstraints c = new GridBagConstraints();
    		c.insets = new Insets(5, 5, 5, 5);
    		buildConstraints(c,0,0,1,2,0,0);
    		p_edit.add(etiquetteCodeOption, c);
    		buildConstraints(c,2,0,2,2,0,0);
    		p_edit.add(entreeCodeOption, c);
    		buildConstraints(c,0,3,1,2,0,0);
    		p_edit.add(etiquetteLibOption, c);
    		buildConstraints(c,2,3,2,2,0,0);
    		p_edit.add(entreeLibOption, c);
    		buildConstraints(c,5,1,2,2,0,0);
    		ajouter.setBackground(Color.GREEN);		
    		p_edit.add(ajouter, c);
    		return p_edit;
    	}
    	public Panneau PanneauTabOption()
    	{
    		p_tab.setBorder(BorderFactory.createTitledBorder("Liste des options"));
    		p_tab.add(t);
    		suppr = new Bouton("Supprimer option sélectionnée", p_tab);
    		suppr.setBackground(Color.RED);
    		return p_tab;
    	}
    	public PanneauOption()
    	{
    		Panneau p_edit = PanneauEditOption();
    		Panneau p_tab = PanneauTabOption();
    		this.add(p_edit);
    		this.add(p_tab);
    	}
    }
     
     
     
     
    class MonCadre extends JFrame{
    	Onglet lesOnglets;
    	JPanel pannel = new JPanel();
    	PanneauOption pOption;
    	//fonction place()
    	private void place()//gère le positionnement et le dimensionnement du cadre
    	{
    		Toolkit tk = Toolkit.getDefaultToolkit();
    		Dimension d = tk.getScreenSize();//dimension de l'écran
    		int he, le;//hauteur et largeur de l'écran
    		int hf, lf;//hauteur et largeur de la fenêtre
    		int Ox, Oy;//coordonnées du coin haut gauche de la fenêtre
    		he = (int)(d.getHeight());//recupère la hauteur de l'écran
    		le = (int)(d.getWidth());//récupère la largeur de l'écran
    		hf = he; lf = le;//la fenêtre prend 1/4 de l'écran
    		Ox = 0; Oy = 0;//placée à 1/4 du coin haut gauche
    		setLocation (Ox,Oy);//coordonnées du cadre en pixels
    		setSize(800,600);//dimensions du cadre en pixels
    	}
    	private  void buildConstraints(GridBagConstraints gbc, int gx, int gy, int gw, int gh, int wx, int wy){
            gbc.gridx = gx;
            gbc.gridy = gy;
            gbc.gridwidth = gw;
            gbc.gridheight = gh;
            gbc.weightx = wx;
            gbc.weighty = wy;           
        }
    	//Constructeur Mon1Cadre
     	public MonCadre (String titre)
    	{
     		super(titre);
    		place();
    		//setLayout(new FlowLayout());
    		//setBackground(Color.green);//change la couleur du fond
    		JPanel panneau_princ = new JPanel();
    		panneau_princ.setLayout( new BorderLayout() );
     
    		//création des panneaux
    		pOption = new PanneauOption();
     
    		lesOnglets = new Onglet();
     
    		JPanel p_option = new JPanel() ;
    		JPanel onglet1 = new JPanel();
    		onglet1.add(pOption);
     
    	    lesOnglets.ajouteOnglet("Gestion des options", onglet1);
     
    		panneau_princ.add(lesOnglets);
    		this.add(panneau_princ); 
    	}	
    }//MonCadre
     
    public class Projet {
     	public static void main (String [] arg)
    	{
    	MonCadre m;
    	m = new MonCadre("Portail des anciens élèves");//création du cadre
    	m.show();//le cadre est rendu visible
    	}//main
    }
    Et je ne sais pas trop comment remplir ma table, elle sera rempli plus tard grâce à une base de donnée. Mais je ne sais pas comment?

    Merci de votre aide

  2. #2
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    je sais que c'est long à lire on code mais il est pas complexe...

    Je voudrais un petit peu d'aide s'il vous plait car je suis vraiment bloquer là

    Merci

  3. #3
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    our les panneaux l'un en dessous de l'autre => re GridBag sur le panel auquel tu les ajoute (ou alors BoxLayout ou que ne sais-je encore) (pour l'intant tu utilises un FlowLayout qui met les éléments les uns à la suite des autres).

    Pour mettre le bouton plus à droite: fais joujou avec tes insets.

    our remplir toute la fenêtre c'est du au panel auquel tu ajoutes ton PanneauOption qui est aussi en FlowLayout, passe le en BorderLayout. Et dans PanneauOption positionne l'attribut fill de tes GridBagConstraints à GridBagConstraints.FILL.

    Pour ta JTable: vas voire le cours dessus afin de savoit comment la manipuler, vas voire les cours de JDBC pour jouer avec les bases de données puis rassemble les deux pour obtenir ce que tu veux


    Et enfin il est normalque personne ne t'ai répondu car les trois quarts du code que tu fournis est inutile, et lire de longs trucs comme ça ça bande........

  4. #4
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    J'ai réussi à déplcer mon bouton ajouter en jouant sur le insets comme tu me la conseiller.
    EN mettent mon panel auquel j'ajoute panneauOption en borderLayout les pannel de ceux ci ne prenne pas toute la place dans la fenêtre comme je le voudrais. Comment puis-je faire?
    De plus tu m'a conseiller de : positionne l'attribut fill de tes GridBagConstraints à GridBagConstraints.FILL
    j'ai donc fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    c.fill = GridBagConstraints.FILL;
    mais le compilateur me donne une erreur

    Voici mes 2 classe PanneauOption et Moncadre que j'ai modifié

    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
     
    class PanneauOption extends JPanel
    {
    	//déclaration de tous les composants utiliser pour ce panneau
    	Etiquette etiquetteCodeOption = new Etiquette("Code : ");
    	Etiquette etiquetteLibOption = new Etiquette("Libellé :");
    	Entree entreeCodeOption =  new Entree("");
    	Entree entreeLibOption =  new Entree("");
    	Bouton ajouter = new Bouton("ajouter");
    	Bouton suppr;
    	Table t = new Table();
    	Panneau p_edit = new Panneau("Edition des options");
    	Panneau p_tab = new Panneau("Liste des options");
    	private  void buildConstraints(GridBagConstraints gbc, int gx, int gy, int gw, int gh, int wx, int wy){
            gbc.gridx = gx;
            gbc.gridy = gy;
            gbc.gridwidth = gw;
            gbc.gridheight = gh;
            gbc.weightx = wx;
            gbc.weighty = wy;           
        }
    	private Panneau PanneauEditOption()
    	{
    		p_edit.setLayout(new GridBagLayout());
    		GridBagConstraints c = new GridBagConstraints();
    		c.insets = new Insets(5, 5, 5, 5);
    		buildConstraints(c,0,0,1,2,0,0);
    		p_edit.add(etiquetteCodeOption, c);
    		buildConstraints(c,2,0,2,2,0,0);
    		p_edit.add(entreeCodeOption, c);
    		buildConstraints(c,0,3,1,2,0,0);
    		p_edit.add(etiquetteLibOption, c);
    		buildConstraints(c,2,3,2,2,0,0);
    		p_edit.add(entreeLibOption, c);
    		buildConstraints(c,5,1,2,2,0,0);
    		ajouter.setBackground(Color.GREEN);
    		c.insets = new Insets(5, 50, 5, 5);
    		p_edit.add(ajouter, c);
    		return p_edit;
    	}
    	public Panneau PanneauTabOption()
    	{
    		p_tab.setBorder(BorderFactory.createTitledBorder("Liste des options"));
    		p_tab.add(t);
    		suppr = new Bouton("Supprimer option sélectionnée", p_tab);
    		suppr.setBackground(Color.RED);
    		return p_tab;
    	}
    	public PanneauOption()
    	{
    		this.setLayout(new GridBagLayout());
    		GridBagConstraints c = new GridBagConstraints();
    		buildConstraints(c,0,0,1,1,0,0);
    		c.insets = new Insets(5, 5, 5, 5);
    		Panneau p_edit = PanneauEditOption();
    		Panneau p_tab = PanneauTabOption();
    		this.add(p_edit,c);
    		buildConstraints(c,0,1,1,1,0,0);
    		this.add(p_tab,c);
    	}
    }
     
     
     
     
    class MonCadre extends JFrame{
    	Onglet lesOnglets;
    	JPanel pannel = new JPanel();
    	PanneauOption pOption;
    	//fonction place()
    	private void place()//gère le positionnement et le dimensionnement du cadre
    	{
    		Toolkit tk = Toolkit.getDefaultToolkit();
    		Dimension d = tk.getScreenSize();//dimension de l'écran
    		int he, le;//hauteur et largeur de l'écran
    		int hf, lf;//hauteur et largeur de la fenêtre
    		int Ox, Oy;//coordonnées du coin haut gauche de la fenêtre
    		he = (int)(d.getHeight());//recupère la hauteur de l'écran
    		le = (int)(d.getWidth());//récupère la largeur de l'écran
    		hf = he; lf = le;//la fenêtre prend 1/4 de l'écran
    		Ox = 0; Oy = 0;//placée à 1/4 du coin haut gauche
    		setLocation (Ox,Oy);//coordonnées du cadre en pixels
    		setSize(800,600);//dimensions du cadre en pixels
    	}
    	private  void buildConstraints(GridBagConstraints gbc, int gx, int gy, int gw, int gh, int wx, int wy){
            gbc.gridx = gx;
            gbc.gridy = gy;
            gbc.gridwidth = gw;
            gbc.gridheight = gh;
            gbc.weightx = wx;
            gbc.weighty = wy;           
        }
    	//Constructeur Mon1Cadre
     	public MonCadre (String titre)
    	{
     		super(titre);
    		place();
    		//setLayout(new FlowLayout());
    		//setBackground(Color.green);//change la couleur du fond
    		JPanel panneau_princ = new JPanel();
    		panneau_princ.setLayout( new BorderLayout() );
     
    		//création des panneaux
    		pOption = new PanneauOption();
     
    		lesOnglets = new Onglet();
     
    		JPanel onglet1 = new JPanel();
    		onglet1.setLayout( new BorderLayout() );
    		onglet1.add(pOption);
     
    	    lesOnglets.ajouteOnglet("Gestion des options", onglet1);
     
    		panneau_princ.add(lesOnglets);
    		this.getContentPane().add(panneau_princ); 
    	}	
    }//MonCadre
    dsl pour les classe inutiles mais j'ai appris à l'école à faire comme cela...
    Merci encore de ton aide

  5. #5
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Oups pour le fill je me suis planté il fallait mettre HORIZONTAL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    c.fill = GridBagConstraints.HORIZONTAL;
    Mais bo rien que tu ne puisse pas trouver dans la javadoc: http://java.sun.com/j2se/1.5.0/docs/...nstraints.html

    Ce n'est pas le nombre de classes que tu as écris qui posait problème, mais le nombre de lignes de code que tu as posté ici: les trois quarts n'ont rien à voire avec ton problème.
    Sinon il vaudrait mieux que tu sépares ça entre plusieurs fichiers, c'est tout de suite plus digeste que je ne sais combien de classes dans un même fichier, c'est plutôt super lourdingue...

  6. #6
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    alors j'ai rajouter l'attribut fill a mes gridbagconstraints, cela mais les 2 panelque j'ajoute à la même grandeur horizontal.
    Mais mes panels ne se mette pas à la taille de ma fenêtre comme je le voudrais....

    VOila ce que j'ai rajouter dans la fonction PanneauOption() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    	public PanneauOption()
    	{
    		this.setLayout(new GridBagLayout());
    		GridBagConstraints c = new GridBagConstraints();
    		c.fill = GridBagConstraints.HORIZONTAL;
    		buildConstraints(c,0,0,1,1,0,0);
    		c.insets = new Insets(5, 5, 5, 5);
    		Panneau p_edit = PanneauEditOption();
    		Panneau p_tab = PanneauTabOption();
    		this.add(p_edit,c);
    		buildConstraints(c,0,1,1,1,0,0);
    		this.add(p_tab,c);
    	}
    EN rajoutant ailleurs, cela ne change rien...

    Merci de votre aide!
    Surtout à toi Sinok

Discussions similaires

  1. [CR] mise en forme d'un champs texte en fonction des données
    Par niPrM dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 29/06/2004, 11h57
  2. [CR 9] Mise en forme non affichée when null
    Par Yorglaa dans le forum Formules
    Réponses: 2
    Dernier message: 28/06/2004, 17h27
  3. mise en forme rapide d'applets
    Par appletj dans le forum Applets
    Réponses: 11
    Dernier message: 03/06/2004, 13h28
  4. Mise en forme HTML
    Par Regis.C dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 25/04/2004, 11h55
  5. Mise en forme fichier avant Import
    Par jeff37 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/04/2004, 15h16

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