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 :

Comment codez vous vos interfaces ?


Sujet :

AWT/Swing Java

  1. #21
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Tout à fait normal vu que tu utilise un BorderLayout (le composants remplissent tout l'espace qu'ils trouvent
    En général le BorderLayout sert à mettre des JPanel qui eux même comportent des composants en eux(en général ces panels utilisent du GridBagLayout, du BoxLayout ou des layouts tierces(TableLayout, SpringLayout, FormLayout) qui sont eux plus aptes au positionnement de composants)
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  2. #22
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Je pense qu'il vaut mieux changer de Layout, Je verrais bien un GridBagLayout avec lequel tu peux tout faire question placement.
    Le problème avec le BorderLayout c'est que les composants occupe toute la zone (NORTH, SOUTH,...) et se la partage equitablement s'il y a plusieurs composants.

    Voilà, j'éspère que c'est clair.N'hésite pas à poser des questions si tu n'as pas compris

    [EDIT] Grillé [/EDIT]


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  3. #23
    Membre éclairé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Points : 884
    Points
    884
    Par défaut
    ok ! merci !

    Le prob n'est pas résolu (ce n'est pas le but) mais comme ca je sais ou chercher ! Je veux pas qu'on fasse mon travail -> je veux qu'on me dirige sur le bon chemin !

    Merci des réponses !
    Les cours: XHTML, CSS, PHP, Flash et Javascript
    Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
    N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
    Aucune question technique par MP.

  4. #24
    Membre éclairé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Points : 884
    Points
    884
    Par défaut
    re-bonjour a tous...

    J'ai passé un super week-end à chercher mon problème... Mon bouton fermer prend mnt toute la fenetre ! Est-ce que vous pouvez m'aider ?

    J'aimerais faire une fenetre du style a propos

    Voici le code pour la frame :

    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
    public class HelpAboutFrame extends JFrame
    {
     
    	static final long serialVersionUID = 0;
     
    	private static final LayoutManager GridBagLayout = null;
     
    	JPanel contentPane;
    	BorderLayout borderLayout = new BorderLayout ();
     
    	public JLabel boutons = new JLabel ();
     
    	JButton BoutonFermer = null;
     
     
    	public HelpAboutFrame ()
    	{
    		// Permet la gestion des événements graphiques.
    		enableEvents (AWTEvent.WINDOW_EVENT_MASK);
     
    		jbInit ();
    	}
     
    	private void jbInit ()
    	{
    		contentPane = (JPanel) getContentPane ();
    		contentPane.setLayout (borderLayout);
     
    		setSize (new Dimension (400, 300));
    		setTitle ("Help");
     
    		BoutonFermer = new JButton();
     
    		BoutonFermer.setText("Fermer");
    		BoutonFermer.setSize(80,10);
     
     
    		BoutonFermer.setLayout(GridBagLayout);
    		contentPane.add(BoutonFermer);
    	}
     
    	public void addFileExitActionListener (ActionListener listener)
    	{
    		BoutonFermer.addActionListener (listener);
    	}
     
    }
    et voici le code du projet pilote :

    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
    public class HelpAboutPilote
    {
    	JPanel contentPane;
    	BorderLayout borderLayout = new BorderLayout ();
     
     
    	private HelpAboutFrame helpAboutFrame;
     
    		public HelpAboutPilote ()
    	{
    		// Création de l'encadrement principal de l'application.
    		setHelpAboutFrame(new HelpAboutFrame ());
     
    		// Dimensions de l'écran.
    		Dimension screenSize = Toolkit.getDefaultToolkit ().getScreenSize ();
     
    		// Dimensions de l'encadrement.
    		Dimension frameSize = helpAboutFrame.getSize();
     
    		if (frameSize.height > screenSize.height)
    		{
    			frameSize.height = screenSize.height;
    		}
     
    		if (frameSize.width > screenSize.width)
    		{
    			frameSize.width = screenSize.width;
    		}
     
    		// Emplacement de l'encadrement.
    		getHelpAboutFrame ().setLocation ((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
     
    		getHelpAboutFrame ().addFileExitActionListener (new ActionListener ()
    				{
    					public void actionPerformed (ActionEvent event)
    					{
    						BoutonFermer_actionPerformed (event);
    					}
    				});
     
    		// Activation de l'encadrement.
    		getHelpAboutFrame ().setVisible (true);
    	}
     
    	public HelpAboutFrame getHelpAboutFrame ()
    	{
    		return helpAboutFrame;
    	}
     
    	public void setHelpAboutFrame (HelpAboutFrame pHelpAboutFrame)
    	{
    		helpAboutFrame = pHelpAboutFrame;
    	}
     
     
     
    	public void BoutonFermer_actionPerformed (ActionEvent event)
    	{
    		helpAboutFrame.setVisible(false);
    	}
     
     
     
    }
    Je sais cela est un peu "indigeste" de présenter du code en vrac comme ca !

    Merci de m'aiguiller !
    Les cours: XHTML, CSS, PHP, Flash et Javascript
    Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
    N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
    Aucune question technique par MP.

  5. #25
    Membre confirmé Avatar de NeptuS
    Profil pro
    Inscrit en
    Août 2005
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 392
    Points : 508
    Points
    508
    Par défaut
    perso, j'ai pas envie de lire ton code (t'as raison : c'est très indigeste, la preuve : j'ai laché la conversation au dernier post )

    juste un tout petit conseil pour éviter d'avoir une liste d'import énorme lorsque ta classe sera finie : regroupe les par package :
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    //Importation des librairies :
    import java.awt.AWTEvent;
    import java.awt.BorderLayout;
    import java.awt.Dimension;
     
    import java.awt.event.ActionListener;
    import java.awt.event.WindowEvent;
     
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JPanel;
    fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //Importation des librairies :
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    Mais dans ce cas, fais attention :
    java.awt est un package.
    java.awt.event est un package inclut dans java.awt
    MAIS
    import java.awt.*; => n'importe que les classes situées dans le package java.awt.

    Donc la ligne import java.awt.event.*; est nécessaire.

    voilou. Bon courage ... et puis.
    Toute vérité est bonne à entendre, même si toutes les vérités ne sont pas bonnes à dire.
    Rien ne sert de partir à point, il vaut mieux courir .

  6. #26
    Membre éclairé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Points : 884
    Points
    884
    Par défaut
    Merci du conseil je prend bonne note !!
    Les cours: XHTML, CSS, PHP, Flash et Javascript
    Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
    N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
    Aucune question technique par MP.

  7. #27
    Membre confirmé Avatar de NeptuS
    Profil pro
    Inscrit en
    Août 2005
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 392
    Points : 508
    Points
    508
    Par défaut
    Bon .. un autre petit coup de pouce, puisque je vois que tu check souvent le forum (à moins que ce soit 1 hasard ).

    L'astuce pour éviter d'avoir un composant qui se dimensionne à la taille de l'écran, c'est de mettre un Container en dessous (en général : 1 JPanel), ainsi, c'est cet élément qui va s'étirer et le bouton, lui, restera à sa taille normale.

    Ce comportement se retouve dans les BorderLayout et GridLayout.

    En cas de gros problèmes de redimensionnement, tu as aussi la méthode "setPrefferedSize(Dimension d)" (Dimension est une classe du package AWT).
    C'est cette méthode qui est appelée sur chaque élément à rafraichir lorsque tu appelle des méthodes comme "pack()" sur un Container. (pack() redimensionne de façon optimale).

    Bon courage.
    Toute vérité est bonne à entendre, même si toutes les vérités ne sont pas bonnes à dire.
    Rien ne sert de partir à point, il vaut mieux courir .

  8. #28
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    Avec un BorderLayout, si tu ne précises rien, le composant est ajouté dans la partie CENTER et est donc redimensionné de manière à ce qu'il prenne toute la place possible.

    Utilises un panel auquel tu ajoutes ton bouton. Et dans ce panel, utilises un autre layout (FlowLayout ou GridBagLayout).

  9. #29
    Membre éclairé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Points : 884
    Points
    884
    Par défaut
    oui c'est vrai que je viens souvent sur le forum (car c'est une véritable source d'information). Les tutos expliquent mais ici le forum resout (enfin les gentils personnes qui prennent le temps de lire et de répondre !!!) !

    En tout cas merci de vos réponses (ça m'aide à me faire des automatismes et des déclics !) => Si je suis chiant et énervant avec mes questions faut me le dire !

    Merci bcp car c'est pas facile de faire du Java sans avoir beaucoup de connaissances...
    Les cours: XHTML, CSS, PHP, Flash et Javascript
    Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
    N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
    Aucune question technique par MP.

  10. #30
    Membre confirmé Avatar de NeptuS
    Profil pro
    Inscrit en
    Août 2005
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 392
    Points : 508
    Points
    508
    Par défaut
    c'est bien ça le problème
    Mais faut pas t'excuser : si t'es soulant, on arrêtera de répondre, et si tu deviens arrogant, un modérateur te repettra à ta place (et quelques utilisateurs aussi ).

    Un dernier conseil : lis bien les tutos et persévère. C'est la seule façon de réussir, et réussir est la seule façon efficace de se motiver.
    Toute vérité est bonne à entendre, même si toutes les vérités ne sont pas bonnes à dire.
    Rien ne sert de partir à point, il vaut mieux courir .

Discussions similaires

  1. Comment codez vous vos applications ?
    Par popy67 dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 26/11/2012, 09h42
  2. [Info]Comment créez vous vos interfaces ?
    Par Le Pharaon dans le forum Eclipse Java
    Réponses: 10
    Dernier message: 24/11/2005, 14h33
  3. Comment creez vous vos interfaces ?
    Par Regis.C dans le forum EDI et Outils pour Java
    Réponses: 28
    Dernier message: 21/10/2005, 16h47
  4. [MySQL] Comment ecrivez-vous vos traitements batch
    Par ouioui2000 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 21/10/2005, 15h36
  5. [tomcat][jsp] Comment gerez vous vos connexions bdd?
    Par olive.m dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 21/06/2004, 17h35

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