Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme d'organisation des composants

    25 janvier 2009 à 22:27:46

    salut tout le monde
    je suis débutant en java et je trouve bcp de problème surtout dans la programmation événementielle.
    un petit exemple :
    import java.awt.*;
    
    import javax.swing.*;
    
    public class teste extends JFrame{
    	private JPanel container=new JPanel();
    	public teste(){
    		this.setTitle("Association AFAk");
    		this.setSize(700,300);
    		this.setLocationRelativeTo(null);
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		this.setResizable(false);	
    		
    		JLabel nom=new JLabel("  Nom : ");
    		JLabel prenom=new JLabel("  Prenom : ");
    		JLabel Age=new JLabel("  Age : ");
    		JLabel Sexe=new JLabel("  Sexe : ");
    		JLabel Homme=new JLabel("  Homme :");
    		JLabel Femme=new JLabel("  Femme :");
    		JLabel Phone=new JLabel("  Numero de telephone : ");
    		
    		JTextField nom_txt=new JTextField();
    		JTextField prenom_txt=new JTextField();
    		JTextField age_txt=new JTextField();
    		JTextField phone_txt=new JTextField();
    		JRadioButton fem=new JRadioButton();
    		JRadioButton masc=new JRadioButton();
    		ButtonGroup g1=new ButtonGroup();
    		JPanel choix_sexe=new JPanel();
    		choix_sexe.add(Homme);
    		choix_sexe.add(masc);
    		choix_sexe.add(Femme);
    		choix_sexe.add(fem);
    		g1.add(masc);
    		g1.add(fem);
    		
    		JButton valider=new JButton("Valider");
    		valider.setSize(20, 10);
    		
    		//le panel inscription :
    		JPanel Inscription=new JPanel();
    		Inscription.setPreferredSize(new Dimension(400,180));
    		Inscription.setLayout(new GridLayout(6,2));
    		Inscription.setBorder(BorderFactory.createLineBorder(Color.black));
    		Inscription.add(nom);
    		Inscription.add(nom_txt);
    		Inscription.add(prenom);
    		Inscription.add(prenom_txt);
    		Inscription.add(Age);
    		Inscription.add(age_txt);
    		Inscription.add(Sexe);
    		Inscription.add(choix_sexe);
    		Inscription.add(Phone);
    		Inscription.add(phone_txt);
    		Inscription.add(valider);
    		container.add(Inscription);
    		this.setContentPane(container);
    		this.setVisible(true);
    		
    	}
    
    }
    le panel container va contenir deux panels :
    inscription et une autre panel
    mon problème c'est que je sais pas comment je dois faire pour fixer le panel inscription dans le cote droite ????
    le 2eme problème c'est que malgré j'ai redimensionner le bouton valiser il prend tt l'espace disponible
        
    merci de m'aider
    je trouve bcp de problème pour organiser les composants sur a fenetre
    
    • Partager sur Facebook
    • Partager sur Twitter
      26 janvier 2009 à 0:28:16

      commence par sortir le texte tout en bas de ta balise "code" (laisse le code dans la balise bien entendus :p )
      question de pouvoir le lire

      Citation : toi

      je trouve bcp de problème surtout dans la programmation événementielle.



      pourquoi ne pas commencer avec un problème simple ? pour apprendre l'événementiel ?
      genre un bouton qui fait changer de couleur

      (puis pas "je trouve" mais "j'ai")


      au passage, je t'invite a aller relire la section sur les layout :) pour comprendre pourquoi ton bouton se comporte comme ça :)
      http://www.siteduzero.com/tutoriel-3-1 [...] tml#ss_part_1
      • Partager sur Facebook
      • Partager sur Twitter
        26 janvier 2009 à 4:53:55

        Réponse de zéro pour un zéro :

        Pour faire coexister correctement deux JPanel dans un même container, perso j'ai jamais réussi sans utiliser un JSplitPane. Il est assez simple d'utilisation et répond à pas mal de besoins (en tout cas je l'ai adopté direct).

        Par contre tu devrais vraiment lire la partie du tuto de cysboy (ou ailleurs :p) concernant les layout manager.
        J'ai préféré apprendre sur les tutos de sun personnellement (c'est en anglais mais y'a d'excellents exemples et un contenu exhaustif de tous les composants).

        Pour tes problèmes...
        Eh bien comme je l'ai indiqué au-dessus, tu devrais essayer un JSplitPane. Un petit coup d'œil dans la doc de Sun et c'est bon !
        http://java.sun.com/javase/6/docs/api/ [...] plitPane.html

        Quant au deuxième :
        Tu utilises un GridLayout. Et tu places ton JButton valider dans une case de la grille. Je n'en suis pas certain, mais à partir du moment où tu places un composant dans un container avec un layout de Java, ce n'est plus toi qui décides de la taille de ton composant !
        Autrement c'que j'te propose : tu mets ton JButton valider hors de ton JPanel Inscription, et tu crées un JPanel qui contiendra exclusivement ton JButton avec la taille que tu lui veux (y'a peut-être mieux comme méthode). Au passage, pour définir la taille de ton JButton c'est comme ceci :

        monBouton.setPreferredSize(new Dimension(20, 10));
        


        Enfin une petite remarque : ton code pique un peu les yeux. On pourrait améliorer plusieurs choses pour la visibilité mais je te conseille juste d'aérer un peu plus en mettant des espaces autour des opérateurs comme ceci :

        JPanel panel = new JPanel();
        


        et de garder la convention suivante : les identifiants de variables commencent par une lettre minuscule (cela permet de ne pas les confondre avec des objets entres autres).
        Ca paraît barbant comme norme mais pour demander de l'aide c'est déjà beaucoup plus présentable (plus le code est lisible, plus on pourra t'aider rapidement).
        • Partager sur Facebook
        • Partager sur Twitter
          26 janvier 2009 à 8:17:25

          Citation : elmh

          Réponse de zéro pour un zéro :

          Pour faire coexister correctement deux JPanel dans un même container, perso j'ai jamais réussi sans utiliser un JSplitPane. Il est assez simple d'utilisation et répond à pas mal de besoins (en tout cas je l'ai adopté direct).


          personnellement j'utilise des Box ... enfin bon :p
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            26 janvier 2009 à 11:32:57

            salut
            personnellement j'utilise les JTabbedPane
            private JTabbedPane onglet = new JTabbedPane();
            onglet.addTab("titre pan1", null, pan1, "anglet pour afficher le panel1");
            onglet.addTab("titre pan2", null,pan2, "anglet pour affichier le panel2");
            
            • Partager sur Facebook
            • Partager sur Twitter
              26 janvier 2009 à 14:09:54

              :) je vous remercie de votre aide
              je vais chercher sur les JSplitPane aussi sur les box et JSplitPane
              si je trouve des problèmes je vais laisser un messages
              je me demande est ce que il ya un logiciel comme le visual basic qui vous aide a dessiner facilement vos objets ?
              en tout cas merci de votre soutien
              • Partager sur Facebook
              • Partager sur Twitter
                26 janvier 2009 à 15:01:58

                Evidemment tu peux utliser n'importe quel Layout pour arriver à ce que tu veux. Après (je trouve qu') il y a des solutions plus faciles à mettre en œuvre que d'autres :)

                Le JSplitPane (qui est un container) permet de séparer une JFrame en deux (chaque partie étant aussi séparable).
                Les Box sont plutôt sympas aussi ; je les utilise pour créer des espaces vides entre mes composants.
                Le JTabbedPane permet de faire une navigation par onglets dans ton application.

                Il y'a bien sûr une infinité de solutions pour faire ce que tu souhaites. Suffit de fouiller un peu le site de Sun ^^

                Je ne connais pas le Visual Basic mais pour la conception graphique sans toucher au code, y'a bien l'IDE Netbeans (que le site de Sun recommande...) mais personnellement j'accroche pas (je déteste l'auto-complétion de code).
                • Partager sur Facebook
                • Partager sur Twitter
                  26 janvier 2009 à 22:01:40

                  salut
                  pour le logiciel oui il y a le JBuilder mais il n'est pas gratuit
                  • Partager sur Facebook
                  • Partager sur Twitter
                    31 janvier 2009 à 8:12:30

                    merci bcp je vais le télécharger ;)
                    :euh: je ai télécharger jbuilder 2007 entreprise et je l'ai installer mais permet pas de dessiner les composants ????
                    • Partager sur Facebook
                    • Partager sur Twitter

                    probleme d'organisation des composants

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown