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 :

Composant qui occupent toute la taille du parent


Sujet :

AWT/Swing Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 4
    Points : 6
    Points
    6
    Par défaut Composant qui occupent toute la taille du parent
    Bonjour à tous


    Je suis en train d'essayer d'apprendre un peu à utiliser SWING pour faire des interfaces graphiques et j'ai un petit souci.

    J'ai regardé un peu la gestion de placement sur un site nommé Koors.
    Jai donc réussi à me faire des gestions sympas avec des BoxLayout, des Flowlayout, et des borderlayout...

    Mais, la, en me définisant un JPanel perso (pour l'intégrer dans un cardLayout à terme) , et je galère avec la taille de mes composants.

    l'idée est d'obtenir un truc qui ressemble à ca :

    Nom : IFvoulue.PNG
Affichages : 81
Taille : 2,4 Ko

    Ma classe définit donc :
    un JPANEL en boxlayout qui contient :
    => un composant LABEL
    => un JPANEL""insidePanel"" lui meme en GRIDLAYOUT(2*3) contenant
    =>=> 3 composants Labels
    =>=> 3 composants TextField

    J'ai 2 problemes qui sont doute 2 fois le meme :
    - mon "insidePanel" (et son gridLayout) occupe toute la place disponible dans son container
    - mes 6 composants occupent chacun la totalité de la place

    j'ai eu beau utiliser des setBounds, setSize, rien n'y fait, j'obitens ca :

    Nom : IFobtenue.PNG
Affichages : 81
Taille : 9,2 Ko
    Ca ressemble pas vraiment à mon idéee

    Une idée ??

    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
    69
     
    public class JPanelTeam extends JPanel {
     
    	DAO_Utils myDAO=new DAO_Utils();
    	static BoxLayout bxl;
    	GridLayout grid=new GridLayout(2,3);
    	//
    	static JLabel teamNameLabel;
     
    	static JLabel longNameLabel,shortNameLabel,soldeLabel;
     
    	static JTextField longNameText, shortNameText, soldeText;
     
     
    	public JPanelTeam() {
    		this.setBorder(new LineBorder(new Color(0, 0, 0)));
    		bxl = new BoxLayout(this, BoxLayout.Y_AXIS);
    		this.setLayout(bxl);
     
     
    		teamNameLabel=new JLabel();
    		teamNameLabel.setAlignmentX(Component.CENTER_ALIGNMENT);
    		teamNameLabel.setHorizontalAlignment(SwingConstants.CENTER);
    		teamNameLabel.setText("------------------MA TEAM--------------------");
    		teamNameLabel.setSize(400,200);
     
    		teamNameLabel.setVisible(true);
    		this.add(teamNameLabel);
     
     
    		JPanel insidePanel=new JPanel();
    			//insidePanel.setBounds(0,0,400,200);
    			insidePanel.setLayout(grid);
    			insidePanel.setBackground(Color.LIGHT_GRAY);
     
    			longNameLabel=new JLabel();
    			longNameLabel.setText("TEAM NAME");
    			longNameLabel.setVisible(true);
    			insidePanel.add(longNameLabel);
     
    			shortNameLabel=new JLabel();
    			shortNameLabel.setText("SHORT NAME");
    			shortNameLabel.setVisible(true);
    			insidePanel.add(shortNameLabel);
     
    			soldeLabel=new JLabel();
    			soldeLabel.setText("BALANCE");
    			soldeLabel.setVisible(true);
    			insidePanel.add(soldeLabel);
     
    			longNameText=new JTextField();
    			longNameText.setText("le NOM LONG");
    			longNameText.setVisible(true);
    			insidePanel.add(longNameText);
     
    			shortNameText=new JTextField();
    			shortNameText.setText("LE NOM COURT");
    			shortNameText.setVisible(true);
    			insidePanel.add(shortNameText);
     
    			soldeText=new JTextField();
    			soldeText.setText("00000000000.0000000000");
    			soldeText.setVisible(true);
    			insidePanel.add(soldeText);
     
    		this.add(insidePanel);	
    	}
     
    }
    Je sens que c'est une méga connerie que je vois pas !
    Merci à toute aide (si y a des conseils de bonnes pratique au passage, je prend !)

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 4
    Points : 6
    Points
    6
    Par défaut
    Bon,

    j'ai résolu mon problème, en passant mon "insidePanel" à absoluteLayoute et en gérant la position de mes composants.

    Je pense avoir compris : dans un layout autre aue Absolute layout , les composants s'ajustent en taille et position automatiquement.
    Si j'avais voulu garder mon grid Layout, il aurait fallu dans chacune des zone remettre un panel en absolute layout ou un layeredPanel puis y placer mes composants ???
    c'est bien ca ?
    Si un expérimenté pouvait me confirmer ou infirmer que ma compréhension est juste ?

    Du coup,
    mon interface est un BorderLayout qui contient 3 toolbars au nord et à l'ouest, un cardLayer au centre, un status bar au Sud.
    dans mon cardPanel au centre j'ai un composant Panel en BoxLayout avec un composant + un panel en absolute.

    La gestion des interfaces en swing necessite donc des imbrications complexes. c'est à la fois très malin car permet beaucoup de réutilisation, mais hyper fastidieux à définir (j'avais l'habitude d'IDE graphique genre visual xxx, et RAD Studio pour delphi,).

    Je laisse un peu en l'état histoire d'avoir eventuellement des réponses aux questions, et ou des suggestions de développeurs plus expérimentés en swing, puis le passerai à "résolu"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/02/2018, 11h03
  2. Template qui occupe toute la largeur
    Par azady dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 16/05/2011, 16h46
  3. Webbrowser qui occupe tout l'ecran, dynamiquement
    Par poupoune1974 dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 15/02/2010, 10h05
  4. image de fond qui occupe tout l'élément
    Par faamugol dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 06/12/2007, 23h04
  5. [css] background image qui occupe toute la surface
    Par mariogarcia dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 23/02/2006, 14h15

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