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 :

[SWING] position absolue


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 107
    Par défaut [SWING] position absolue
    Bonjour, j'aimerais savoir comment faire en JAVA pour positionner de facon absolue, les éléments ?

    merci

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    C'est possible en n'utilisant pas de LayoutManager :
    Mais ce n'est pas vraiment conseillé ni portable...

    a++

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 107
    Par défaut
    aie pas portable ....

    Comment puis-je faire donc pour pouvoir placer mes élèments ?
    une méthode parce que je me retrouve avec des boutons énorme etc....

    Pour le moment, j'utilise les GridBagLayout

  4. #4
    Membre confirmé
    Avatar de osopardo
    Inscrit en
    Juillet 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juillet 2005
    Messages : 92
    Par défaut
    Les GridBagLayout permettent une mise en page précise, si tu as des boutons trop gros il faut jouer sur leurs poids et leur droit à s'étendre :
    méthodes setWeight et setFill de la classe GBC.

    Si tu peut coller ton code de mise en page on pourra te donner quelques pistes.

  5. #5
    Membre expérimenté Avatar de fumiste972
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Février 2003
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Février 2003
    Messages : 228
    Par défaut
    Il faut remanier tes layouts afin de trouver une bonne disposition et retailler tes fenetres correctement si le positionnement est assez simple (ca se fait assez rapidement).
    Maintenant si le positionnement de tes boutons est assez complexe, tu as la layout gridBagLayout qui lui aussi est tres complexe d'utilisation.

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 107
    Par défaut
    Voilà un exemple qui ne marche pas :

    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
    65
    66
    67
    68
     
    import java.awt.*;
    import javax.swing.*;
     
     
    public class main {
     
    	public static void main(String[] args) {
    		Frame frame = new Frame() ;
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		frame.setVisible(true);
    	}
     
    }
     
    class Frame extends JFrame {
     
    	public Frame() {
    		setSize(400,400);
    		setTitle("Test");
     
    		GridBagLayout layout = new GridBagLayout();
    		getContentPane().setLayout(layout);
     
    		JTextArea text = new JTextArea();
    		text.setText("Salut tu vas bien ?");
    		getContentPane().add( text, new GBC(0,0,1,9,100,100).setFill(GBC.BOTH).setInsets(2) );		
     
    		JButton bouton = new JButton("Text");
    		getContentPane().add( bouton, new GBC(1,4,1,1,0,0).setAnchor(GBC.CENTER).setInsets(2) );
     
    		JButton bouton2 = new JButton("Text");
    		getContentPane().add( bouton2, new GBC(1,5,1,1,0,0).setAnchor(GBC.CENTER).setInsets(2) );		
     
    		JButton bouton3 = new JButton("Text");
    		getContentPane().add( bouton3, new GBC(1,6,1,1,0,0).setAnchor(GBC.CENTER).setInsets(2) );		
     
    	}
     
    }
     
    class GBC extends GridBagConstraints {
     
    	public GBC( int gridx, int gridy, int gridw, int gridh, int weightx, int weighty ) {
    		this.gridx = gridx;
    		this.gridy = gridy;
    		this.gridwidth = gridw;
    		this.gridheight = gridh;
    		this.weightx = weightx;
    		this.weighty = weighty;
    	}
     
    	public GBC setFill( int fill ) {
    		this.fill = fill;
    		return this;
    	}
     
    	public GBC setAnchor( int anchor ) {
    		this.fill = anchor;
    		return this;
    	}
     
    	public GBC setInsets(int espace) {
    		this.insets = new Insets(espace,espace,espace,espace);
    		return this;
    	}
     
    }
    J'aimerais que ma zone de texte prenne tout la fenêtre et que mes boutons reste aligner a droite et centré...

    J'ai pris un exemple simple pour montrer


    De plus ma question n'as rien à voir mais comment donner un effet de profondeur aux textArea ?

    merci de votre aide

  7. #7
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    En jouant sur la border (cf la classe BorderFactory et la méthode setBorder de ta JTextArea)

  8. #8
    Membre confirmé
    Avatar de osopardo
    Inscrit en
    Juillet 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juillet 2005
    Messages : 92
    Par défaut
    Désolé j'avais un peu zappé ce topic, ton problème vient de l'absence de poids, voici ce que ça donne avec la classe GBC de la FAQ :

    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
     
    import java.awt.*;
    import javax.swing.*;
     
     
    public class main {
     
    	public static void main(String[] args) {
    		Frame frame = new Frame() ;
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		frame.setVisible(true);
    	}
     
    }
     
    class Frame extends JFrame {
     
    	public Frame() {
    		setSize(400,400);
    		setTitle("Test");
     
    		GridBagLayout layout = new GridBagLayout();
    		getContentPane().setLayout(layout);
     
    		JTextArea text = new JTextArea();
    		text.setText("Salut tu vas bien ?");
    		getContentPane().add( text, new GBC(0,0,1,3)
    			.setWeight(1,1).setFill(GBC.BOTH).setInsets(2) );		
     
    		JButton bouton = new JButton("Text");
    		getContentPane().add( bouton, new GBC(1,0)
    			.setWeight(0,1).setAnchor(GBC.SOUTH).setInsets(2) );
     
    		JButton bouton2 = new JButton("Text");
    		getContentPane().add( bouton2, new GBC(1,1)
    			.setWeight(0,0).setAnchor(GBC.CENTER).setInsets(2) );		
     
    		JButton bouton3 = new JButton("Text");
    		getContentPane().add( bouton3, new GBC(1,2)
    			.setWeight(0,1).setAnchor(GBC.NORTH).setInsets(2) );		
     
    	}
     
    }
    Tu peut aussi obtenir d'autres dispositions plus aérées en ancrant les 3 boutons avec CENTER ou en laissant mettant le même poids (0,1) aux trois boutons.
    Il est aussi généralement conseillé de mettre des poids en 0 et 100 histoire d'avoir un peu de souplesse si besoin.

    En espérant que cette aide tardive te soit toujours utile...

Discussions similaires

  1. position relative, position absolue.....?
    Par manutudescends dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 07/02/2006, 13h35
  2. [DIV] recuperer la position absolue d un div relatif
    Par zolive dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 02/09/2005, 10h28
  3. [Opera 7 & 8] Position absolue dans conteneur relatif
    Par Sub0 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 16
    Dernier message: 16/08/2005, 23h16
  4. position absolue d'un composant
    Par papy_tergnier dans le forum C++Builder
    Réponses: 2
    Dernier message: 06/07/2005, 10h46
  5. Un spacer pour une position absolue
    Par Notilius dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 22/04/2005, 20h09

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