Rechercher : dans
Par :

Positionner les composants swing avec java

Dernière réponse le 20 mai 2008 à 12:21:54 Sabrina, le 6 fév 2005 à 13:22:39 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « Positionner les composants swing avec java » dans :
Installer Java sous Ubuntu VoirPar défaut, Firefox n'est pas fourni avec Java. Voici comment procéder pour l'installer: Ouvrez un terminal (Menu Applications > Accessoires > Terminal) et tapez: sudo aptitude install sun-java6-jre sun-java6-plugin ou sudo aptitude install ...
[Firefox] plugin Java Jre de Sun VoirA) Les différentes variantes Java chez Sun B) Installation sous Mandriva Limited Edition 2005 ETAPE 1 ETAPE 2: Création du lien symbolique C) Installation sous debian lenny D) Installation sous ubuntu hardy heron A) Les différentes...
[Logiciel libre] Installation firefox 2.0+java+flash VoirInstallation firefox 2.0+java+flash en ligne de commande A. INTRODUCTION B. INSTALLATION FIREFOX 1. Création d'environnement 2. Téléchargement et vérification de la signature 3. Installation de Firefox 4. Démarrage de l'application C....
Télécharger Java Runtime Environment VoirJava Runtime Environment (JRE) installe la machine virtuelle Java, permettant de jouer en ligne, de discuter avec des personnes dans le monde entier, de calculer les intérêts de votre prêt immobilier ou de visualiser des images en 3D. Ces...
J2EE - Java 2 Enterprise Edition VoirIntroduction au Java Framework Le «Java Framework» (Java 2 Platform) est composé de trois éditions, destinées à des usages différents : J2ME : Java 2 Micro Edition est prévu pour le développement d'applications embarquées, notamment sur des...
Java - Premier programme VoirPremière application avec Java La première chose à faire est de créer un simple fichier texte (sans mise en forme) et de taper les quelques lignes suivantes : // Votre premiere application en Java class FirstApp { public static void main...
Java - Les types de données VoirLes primitives Java est un langage orienté objet, c'est-à-dire que les éléments manipulés sont des classes, ou plus exactement des objets, c'est-à-dire des instances de classes. Toutefois ces objets contiennent des données possèdant un type (et...

1

Jon301, le 6 fév 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

sabrina, le 6 fév 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

David, le 21 fév 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

philtrain, le 6 fév 2005 à 21:22:32

Bonsoir,

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

a+

Répondre à philtrain

4

greg le millionnaire, le 19 fév 2005 à 22:55:23
  • +1

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

philtrain, le 21 fév 2005 à 13:11:22
  • +1

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

smile, le 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

Kouskous, le 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

 Julien, le 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
Collection CommentÇaMarche.net