rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Positionner les composants swing avec java

Sabrina, le dimanche 6 février 2005 à 13:22:39
Bonjour ;

J'ai écrit un petit programme pour faire une interface graphique en java:
import java.text.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
import java.awt.BorderLayout.*;
import javax.swing.table.*;

 
public class Recherche1 extends JFrame {
 //Panel de criteres de recherche
 public JPanel panelRecherche = new JPanel();   BorderLayout());

 
//Champs texte
 public  JTextField champ1 = new JTextField(20);
 
//Boutons
 public JButton Ajouter = new JButton("Ajouter");
     
//ComboBox
 public JComboBox critere = new JComboBox();
  
// *********************** Constructeur par défaut *************************

public Recherche1() {
  
   
  this.getContentPane().add(panelRecherche);
  
  panelRecherche.add(champ1);
  panelRecherche.add(critere);
  panelRecherche.add(Ajouter);
  
  this.setTitle("Fenetre de recherche musicale");  
  
  this.setSize(500, 500);  
  
  this.setVisible(true);
  panelRecherche.setVisible(true);
  
 
  this.show();
  
}

}

Ceci permet d'afficher une fenetre contenant un champ de texte, un bouto et une combo box. J'aimerais positioner ces composants comme je le souhaite, par exemple: mettre le bouton au-dessous des deux autres. J'ai lu de la doc mais je ne trouve pas ce que je cherche, quelqu'un peut-il m'aider svp?

Merci
Répondre à Sabrina  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Jon301, le dimanche 6 février 2005 à 13:31:58
Salut Sabrina,

Si tu veux placer vraiment librement tes objets, tu peux initialiser le layout à null et placer tes composants avec la méthode setBounds (x,y,width,height)

Je ne suis pas un pro dans ce domaine donc essai de voir sur ce lien
http://java.sun.com/j2se/1.3/docs/api/java/awt/Component.htm­l#setBounds(int,%20int,%20int,%20int)

Sinon j'ai aussi entendu dire que le GridBagLayout était assez flexible comme gestionnaire de mise en page.
Tu peux jeter un coup d'oeil la dessus :
http://java.sun.com/j2se/1.4.2/docs/api/java/awt/GridBagLayo­ut.html

Cordialement,

Jon301
Répondre à Jon301

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
sabrina, le dimanche 6 février 2005 à 14:42:12
Merci bcp pour ton aide.

J'ai essayé d'utiliser la méthode setBounds comme dans les exemples fournis mais ça ne marche pas. il compile mais à l'exécution, rien ne change. g inséré l'instruction suivante après les add:
champ1.setBounds(10, 10, 100, 100)

Quelqu'un peut-il m'aider svp?

Merci
Répondre à sabrina

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
David, le lundi 21 février 2005 à 11:36:50
Salut, j'ai le meme probleme que toi concernant les composants.

J'ai annulé le borderlayout par
getContentPane().setLayout(null)
, je crais mes différents panel et le places.

Pour finir, je crais des boutons et label, que je place dans mes panel, et je veux les replacer comme toi par la méthode
champ1.setBounds(10, 10, 100, 100)
, mais cela ne fonctionne pas.

Est ce que tu connais la solution a ce probleme?

Merci, david
Répondre à David

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
philtrain, le dimanche 6 février 2005 à 21:22:32
Bonsoir,

Il faut utiliser les layout:
BorderLayout, GridLayout, BoxLayout, GridBagLayout etc...
--> Voir la documentation

a+
Répondre à philtrain

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
greg le millionnaire, le samedi 19 février 2005 à 22:55:23
Pour utiliser le setBounds(x,y,w,h);
il faut que tu mettes le Layout de ton component(JPanel) à null.
setLayout(null);
Car lorsque tu crées un jpanel il y a un layout par defaut dessus(borderlayout je crois??!!).
Voila :)
Répondre à greg le millionnaire

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
philtrain, le lundi 21 février 2005 à 13:11:22
Bonjour,

la méthode consistant à utiliser les gestionnaires de positionnement permet :
1) de positionner les composants comme on le souhaite;
2) d'éviter des comportements imprévisibles lors des redimensionnement des composants parents.

Selon les besoins, on utilise les BorderLayout, GridLayout, GridBagLayout, BoxLayout, CardLayout, FlowLayout, et le petit dernier SpringLayout.

Pour un tutoriel bien fait, c'est ici:
http://java.sun.com/docs/books/tutorial/uiswing/layout/index­.html

et comme d'habitude la doc sur l'API java est votre ami:
http://java.sun.com/j2se/1.5.0/docs/api/

a+
Répondre à philtrain

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
smile, le lundi 12 mai 2008 à 02:32:07
Bonsoir :

s'il vous plait j'ai un problème concernant la superposition des composants : en faite j'ai deux JPanel que je veux superposer l'un en dessous de l'autre ,le premier contient une image le deuxième contient des boutons et labels qui doivent etre placées sur l'image. Pour le prmeier JPanel c'est bon,j'ai fait une image au fond et j'ai ajouté la Jpanel a ma fenetre,pour le deuxième j l'ai defini et j'ai ajouté les comosants avec setBounds puis j'ai ajouté les deux JPanels a ma fentere.Le problème est que le deuxième JPanel ,plus precisement les comosants qu'il contient boutons,labels n'apparaiisent qu'en survolant la fenetre avec ma souris ?!?!? et si je minimise la fentre tous ces composants disparaissent et ne reste que l'image ?????????

S'il vous plait aidez moi ......
Répondre à smile

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Kouskous, le mardi 20 mai 2008 à 11:26:47
Bonjour Smile,
je ne comprends pas trop ton besoin??? Tu as besoin de superposer un panel avec une image et un autre panel avec tes (labels + boutons)??? Ou bien te faut-il une fenêtre où mettre d'un côté ton image et de l'autre tes (labels + boutons)?
Répondre à Kouskous

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Julien, le mardi 20 mai 2008 à 12:21:54
Il y a de très bons tutoriaux sur Java à cette adresse, dont l'un traite du positionnement des composants:
http://b.kostrzewa.free.fr/java/index.html

Je vous conseille de taper les exemples fournis et de les compiler. Ca permet de mieux assimiler.
Le positionnement des composants Swing n'est guère différent de celui des composants de l'AWT (Abtract Windowing Toolkit).
Répondre à Julien
Logiciels pertinents trouvés dans les téléchargements
Télécharger Java Runtime Environment 6 Update 7Java Runtime Environment - Java Runtime Environment (JRE) installe la machine virtuelle Java, permettant de jouer en ligne, de discuter avec des...Catégorie: Java
Licence: Open Source
Télécharger Java Tools 0.35Java Tools - Java Tools est un IDE très léger pour la création, la compilation, l'exécution et le débogage des applications Java et des...Catégorie: Java
Licence: Freeware/gratuit
Télécharger PSPad 4.5.2PSPad - PSPad est un excellent éditeur de texte. Il est utile pour travailler sur du simple texte, mais aussi sur du HTML, CSS,...Catégorie: Développement
Licence: Freeware/gratuit
Télécharger Azureus 3.0.5.2bAzureus - Azureus est un client BitTorrent multiplateformes développé en Java, c'est-à-dire un gestionnaire de téléchargement de...Catégorie: Téléchargement
Licence: Open Source
Plus de logiciels gratuits sur « Positionner les composants swing avec java »