Disposition de boutons et TextField

cs_Jordan59 Messages postés 174 Date d'inscription vendredi 26 mai 2006 Statut Membre Dernière intervention 9 avril 2014 - 2 janv. 2008 à 18:16
cs_Jordan59 Messages postés 174 Date d'inscription vendredi 26 mai 2006 Statut Membre Dernière intervention 9 avril 2014 - 2 janv. 2008 à 20:04
Bonsoir tout le monde,

Je débute en java et je suis en train de réaliser un TP qui consiste à faire un petit Atlas routier, j'ai finalement réussi mais un problème au niveau graphique subsite :
http://www.monsterup.com/image.php?url=upload/1199293933.jpg

La carte sur la gauche est un JPanel et je cherche à placer mon premier textfield et le bouton rechercher tout en haut à droite et les 2 autres textfield ainsi que le bouton Calculer juste en dessous mais tout reste sur la même ligne !

Voici le code de l'affichage :
Toolkit k = Toolkit.getDefaultToolkit();
  //calcule la largeur de l'écran
  int largeurEcran=k.getScreenSize().width;
  //calcule la hauteur de l'écran
  int hauteurEcran=k.getScreenSize().height;
  //donne un titre à la fenêtre
  setTitle("Atlas routier");
  //détermine la taille de la fenêtre
  setSize(largeurEcran,hauteurEcran);
  //création du JPanel contenant le champ de saise et le bouton rechercher
  JPanel p1 = new JPanel();
  setLayout(new BorderLayout());
  textNom=new JTextField();
  // détermine la taille du champ de saisie
  textNom.setPreferredSize(new Dimension(110,25));
  // on ajoute le champ de saisie à l'est du JPanel
  p1.add(textNom,BorderLayout.EAST);
  btnAfficher=new JButton("Rechercher");
  // on ajoute le bouton à l'est du JPanel
  p1.add(btnAfficher,BorderLayout.EAST);
  // champ de saisie ville de départ
  textDepart=new JTextField();
  textDepart.setPreferredSize(new Dimension(110,25));
  p1.add(textDepart,BorderLayout.CENTER);
  // champ de saisie ville d'arrivée
  textArrivee=new JTextField();
  textArrivee.setPreferredSize(new Dimension(110,25));
  p1.add(textArrivee,BorderLayout.CENTER);
  //bouton calcul itinéraire
  btnCalculer=new JButton("Calculer");
  p1.add(btnCalculer,BorderLayout.CENTER);
  // on ajoute le JPanel à l'est de la fenêtre
  add(p1,BorderLayout.EAST);
  setVisible(true);
  // permet de récupérer le clic sur le bouton
  btnAfficher.addActionListener(this);
  btnCalculer.addActionListener(this);
  // on ajoute le JPanel maCarte au centre de la fenêtre
  add(maCarte,BorderLayout.CENTER);

Ayant plutôt l'habitude de développer en C# sous Visual Studio où l'on place les composants à sa guise, j'ai du mal à me faire à Java.
Une âme charitable pourrait-elle m'aider ?
merci d'avance et bonne soirée.

3 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
2 janv. 2008 à 18:33
Salut,

C'est cà le problème d'utiliser des designers graphiques : non seulement on ne sait pas ce qu'ils font derrière (et donc on ne sais pas comment faire sans) mais en plus le code produit est de piètre qualité !

Pour ton problème, utilise donc un gridbaglayout qui te permettra de faire tout ce que tu voudra niveau présentation.
______________________________________
DarK Sidious
0
cs_Jordan59 Messages postés 174 Date d'inscription vendredi 26 mai 2006 Statut Membre Dernière intervention 9 avril 2014 7
2 janv. 2008 à 18:48
merci pour ta réponse, je sais que les designers graphiques produit un code de piètre qualité et c'est pour ça que j'essaie de changer de ce côté là !

Je viens de regarder sur ma fiche de TP dit qu'il faut utiliser un container et utiliser un BoxLayout pour le le container. Il faut ensuite ajouter dans le Content Pane de l'application le container.
0
cs_Jordan59 Messages postés 174 Date d'inscription vendredi 26 mai 2006 Statut Membre Dernière intervention 9 avril 2014 7
2 janv. 2008 à 20:04
Quelqu'un pourrait m'aider car je n'y comprend rien, je n'arrive pas à trouver un tuto pas trop compliqué sachant qu'il m'est imposé dans mon TP une consigne à savoir :

Créez un Container et insérez-y un label pour le titre, une zone de saisie un bouton, ... Ce Container sera votre interface. Utilisez le layout suivant pour votre Container :
BoxLayout interfaceLayout = new BoxLayout.Y_AXIS)
Ajoutez dans le ContentPane de votre application la carte et l'interface.

Je suis sûr qu'après je ferais ça les doigts dans le nez mais pour l'instant j'ai beaucoup de mal !
0
Rejoignez-nous